diff --git a/api/api_autogen/library/defaults/Equpartflip_GeothermalPowerAllEquityPartnershipFlip.json b/api/api_autogen/library/defaults/Equpartflip_GeothermalPowerAllEquityPartnershipFlip.json index 75cd32b086..991fd635fc 100644 --- a/api/api_autogen/library/defaults/Equpartflip_GeothermalPowerAllEquityPartnershipFlip.json +++ b/api/api_autogen/library/defaults/Equpartflip_GeothermalPowerAllEquityPartnershipFlip.json @@ -231,15 +231,13 @@ "pbi_uti_term": 0 }, "SystemOutput": { - "degradation": [0.000000], + "degradation": [0], "gen": [0.000000], "system_capacity": 32813.6 }, "ElectricityRates": { }, "Recapitalization": { - "system_recapitalization_cost": 4.15803e+07, - "system_use_recapitalization": 1 }, "TimeOfDelivery": { "system_use_lifetime_output": 1 diff --git a/api/api_autogen/library/defaults/Geothermal_GeothermalPowerNone.json b/api/api_autogen/library/defaults/GeothermalNoFin_GeothermalPowerNone.json similarity index 96% rename from api/api_autogen/library/defaults/Geothermal_GeothermalPowerNone.json rename to api/api_autogen/library/defaults/GeothermalNoFin_GeothermalPowerNone.json index f185aade20..02fdbbfb5b 100644 --- a/api/api_autogen/library/defaults/Geothermal_GeothermalPowerNone.json +++ b/api/api_autogen/library/defaults/GeothermalNoFin_GeothermalPowerNone.json @@ -1,8 +1,12 @@ { "defaults": { + "SystemControl": { + }, + "FinancialModel": { + "geo_financial_model": -999 + }, "GeoHourly": { "CT": 3, - "HTF": 3, "P_boil": 2, "P_cond_min": 1.25, "P_cond_ratio": 1.0028, @@ -10,7 +14,6 @@ "T_amb_des": 15, "T_approach": 5, "T_htf_cold_ref": 90, - "T_htf_hot_ref": 200, "allow_reservoir_replacements": 0, "ambient_pressure": 14.7, "analysis_type": 0, @@ -19,24 +22,23 @@ "dT_cw_ref": 10, "decline_type": 0, "delta_pressure_equip": 40, - "design_temp": 200, "drilling_success_rate": 76, "dt_prod_well": 0, "eta_ref": 0.17, "excess_pressure_pump": 50, - "exploration_wells_production": 0, "failed_prod_flow_ratio": 0.3, "fracture_angle": 15, "fracture_aperature": 0.0004, "fracture_length": 1000, "fracture_spacing": 50, "fracture_width": 175, + "geotherm_cost_conf_num_wells": 0, + "geotherm_cost_confirm_wells_percent": 50, "geotherm_cost_inj_cost_curve_welldiam": 0, "geotherm_cost_inj_cost_curve_welltype": 0, "geotherm_cost_inj_prod_well_ratio": 0.5, "geotherm_cost_prod_cost_curve_welldiam": 0, "geotherm_cost_prod_cost_curve_welltype": 0, - "geothermal_analysis_period": 30, "hc_ctl1": 0, "hc_ctl2": 0, "hc_ctl3": 0, @@ -54,7 +56,6 @@ "nameplate": 30000, "num_fractures": 6, "num_wells": 3, - "num_wells_getem": 4.23155, "pb_bd_frac": 0.013, "plant_efficiency_input": 80, "prod_well_choice": 0, @@ -174,10 +175,8 @@ "startup_time": 1, "stim_success_rate": 0, "subsurface_water_loss": 2, - "system_use_lifetime_output": 0, "temp_decline_max": 30, "temp_decline_rate": 0.5, - "ui_calculations_only": 0, "well_flow_rate": 110, "wet_bulb_temp": 10 }, diff --git a/api/api_autogen/library/defaults/Geothermal_GeothermalPowerAllEquityPartnershipFlip.json b/api/api_autogen/library/defaults/Geothermal_GeothermalPowerAllEquityPartnershipFlip.json index e06f3bb4bd..9476a2472a 100644 --- a/api/api_autogen/library/defaults/Geothermal_GeothermalPowerAllEquityPartnershipFlip.json +++ b/api/api_autogen/library/defaults/Geothermal_GeothermalPowerAllEquityPartnershipFlip.json @@ -1,8 +1,12 @@ { "defaults": { + "SystemControl": { + }, + "FinancialModel": { + "geo_financial_model": 3 + }, "GeoHourly": { "CT": 3, - "HTF": 3, "P_boil": 2, "P_cond_min": 1.25, "P_cond_ratio": 1.0028, @@ -10,7 +14,6 @@ "T_amb_des": 15, "T_approach": 5, "T_htf_cold_ref": 90, - "T_htf_hot_ref": 200, "allow_reservoir_replacements": 0, "ambient_pressure": 14.7, "analysis_type": 0, @@ -19,24 +22,53 @@ "dT_cw_ref": 10, "decline_type": 0, "delta_pressure_equip": 40, - "design_temp": 200, "drilling_success_rate": 76, "dt_prod_well": 0, "eta_ref": 0.17, "excess_pressure_pump": 50, - "exploration_wells_production": 2, "failed_prod_flow_ratio": 0.3, "fracture_angle": 15, "fracture_aperature": 0.0004, "fracture_length": 1000, "fracture_spacing": 50, "fracture_width": 175, + "geotherm_cost_conf_multiplier": 1.2, + "geotherm_cost_conf_non_drill": 250000, + "geotherm_cost_conf_num_wells": 4, + "geotherm_cost_confirm_wells_percent": 50, + "geotherm_cost_contingency_percent": 10, + "geotherm_cost_drilling_amount_specified": 0, + "geotherm_cost_drilling_calc": 1, + "geotherm_cost_epc_fixed": 0, + "geotherm_cost_epc_percent": 12, + "geotherm_cost_expl_lump_sum": 0, + "geotherm_cost_expl_multiplier": 0.5, + "geotherm_cost_expl_non_drill": 750000, + "geotherm_cost_expl_num_wells": 1, + "geotherm_cost_indirect_amount_specified": 0, + "geotherm_cost_indirect_calc": 1, + "geotherm_cost_inj_cost_curve": 0, "geotherm_cost_inj_cost_curve_welldiam": 0, "geotherm_cost_inj_cost_curve_welltype": 0, "geotherm_cost_inj_prod_well_ratio": 0.75, + "geotherm_cost_plant_auto_estimate": 0, + "geotherm_cost_plant_per_kW_input": 1800, + "geotherm_cost_plant_total_calc": 1, + "geotherm_cost_plm_fixed": 0, + "geotherm_cost_plm_percent": 3.5, + "geotherm_cost_prod_cost_curve": 0, "geotherm_cost_prod_cost_curve_welldiam": 0, "geotherm_cost_prod_cost_curve_welltype": 0, - "geothermal_analysis_period": 25, + "geotherm_cost_prod_inj_non_drill": 150000, + "geotherm_cost_pump_casing_cost": 0, + "geotherm_cost_pump_fixed": 0, + "geotherm_cost_pump_per_foot": 50, + "geotherm_cost_pumping_amount_specified": 0, + "geotherm_cost_pumping_calc": 1, + "geotherm_cost_recap_specified": 2.3e+07, + "geotherm_cost_recap_use_calc": 1, + "geotherm_cost_sales_tax_percent": 80, + "geotherm_cost_stim_non_drill": 0, "hc_ctl1": 0, "hc_ctl2": 0, "hc_ctl3": 0, @@ -54,9 +86,9 @@ "nameplate": 30000, "num_fractures": 6, "num_wells": 3, - "num_wells_getem": 4.07451, "pb_bd_frac": 0.013, "plant_efficiency_input": 80, + "ppi_base_year": 0, "prod_well_choice": 0, "pump_efficiency": 67.5, "q_sby_frac": 0.2, @@ -168,6 +200,7 @@ "rock_density": 2600, "rock_specific_heat": 950, "rock_thermal_conductivity": 3, + "sales_tax_rate": 5, "specified_pump_work_amount": 0, "specify_pump_work": 0, "start_day_of_year": 0, @@ -176,10 +209,8 @@ "stim_success_rate": 0, "stimulation_type": 0, "subsurface_water_loss": 2, - "system_use_lifetime_output": 1, "temp_decline_max": 30, "temp_decline_rate": 0.5, - "ui_calculations_only": 0, "well_flow_rate": 110, "wet_bulb_temp": 10 }, @@ -191,6 +222,34 @@ [0.000000, 0.000000, 0.000000] ], "adjust_timeindex": [0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000] + }, + "FinancialParameters": { + "analysis_period": 25 + }, + "Costs": { + "geotherm_cost_plant_total_amount_specified": 0 + }, + "FinancialParameters": { + "const_per_interest_rate1": 6.5, + "const_per_interest_rate2": 7, + "const_per_interest_rate3": 0, + "const_per_interest_rate4": 0, + "const_per_interest_rate5": 0, + "const_per_months1": 60, + "const_per_months2": 24, + "const_per_months3": 0, + "const_per_months4": 0, + "const_per_months5": 0, + "const_per_percent1": 40, + "const_per_percent2": 60, + "const_per_percent3": 0, + "const_per_percent4": 0, + "const_per_percent5": 0, + "const_per_upfront_rate1": 1, + "const_per_upfront_rate2": 2, + "const_per_upfront_rate3": 0, + "const_per_upfront_rate4": 0, + "const_per_upfront_rate5": 0 } } } \ No newline at end of file diff --git a/api/api_autogen/library/defaults/Geothermal_GeothermalPowerLCOECalculator.json b/api/api_autogen/library/defaults/Geothermal_GeothermalPowerLCOECalculator.json index a921863914..e0d80e5b9c 100644 --- a/api/api_autogen/library/defaults/Geothermal_GeothermalPowerLCOECalculator.json +++ b/api/api_autogen/library/defaults/Geothermal_GeothermalPowerLCOECalculator.json @@ -1,8 +1,12 @@ { "defaults": { + "SystemControl": { + }, + "FinancialModel": { + "geo_financial_model": -999 + }, "GeoHourly": { "CT": 3, - "HTF": 3, "P_boil": 2, "P_cond_min": 1.25, "P_cond_ratio": 1.0028, @@ -10,7 +14,6 @@ "T_amb_des": 15, "T_approach": 5, "T_htf_cold_ref": 90, - "T_htf_hot_ref": 200, "allow_reservoir_replacements": 0, "ambient_pressure": 14.7, "analysis_type": 0, @@ -19,24 +22,53 @@ "dT_cw_ref": 10, "decline_type": 0, "delta_pressure_equip": 40, - "design_temp": 200, "drilling_success_rate": 76, "dt_prod_well": 0, "eta_ref": 0.17, "excess_pressure_pump": 50, - "exploration_wells_production": 0, "failed_prod_flow_ratio": 0.3, "fracture_angle": 15, "fracture_aperature": 0.0004, "fracture_length": 1000, "fracture_spacing": 50, "fracture_width": 175, + "geotherm_cost_conf_multiplier": 1.2, + "geotherm_cost_conf_non_drill": 250000, + "geotherm_cost_conf_num_wells": 0, + "geotherm_cost_confirm_wells_percent": 50, + "geotherm_cost_contingency_percent": 10, + "geotherm_cost_drilling_amount_specified": 0, + "geotherm_cost_drilling_calc": 1, + "geotherm_cost_epc_fixed": 0, + "geotherm_cost_epc_percent": 16, + "geotherm_cost_expl_lump_sum": 0, + "geotherm_cost_expl_multiplier": 0.5, + "geotherm_cost_expl_non_drill": 750000, + "geotherm_cost_expl_num_wells": 1, + "geotherm_cost_indirect_amount_specified": 0, + "geotherm_cost_indirect_calc": 1, + "geotherm_cost_inj_cost_curve": 0, "geotherm_cost_inj_cost_curve_welldiam": 0, "geotherm_cost_inj_cost_curve_welltype": 0, "geotherm_cost_inj_prod_well_ratio": 0.5, + "geotherm_cost_plant_auto_estimate": 0, + "geotherm_cost_plant_per_kW_input": 1800, + "geotherm_cost_plant_total_calc": 1, + "geotherm_cost_plm_fixed": 0, + "geotherm_cost_plm_percent": 3.5, + "geotherm_cost_prod_cost_curve": 0, "geotherm_cost_prod_cost_curve_welldiam": 0, "geotherm_cost_prod_cost_curve_welltype": 0, - "geothermal_analysis_period": 30, + "geotherm_cost_prod_inj_non_drill": 250000, + "geotherm_cost_pump_casing_cost": 0, + "geotherm_cost_pump_fixed": 0, + "geotherm_cost_pump_per_foot": 50, + "geotherm_cost_pumping_amount_specified": 0, + "geotherm_cost_pumping_calc": 1, + "geotherm_cost_recap_specified": 2.3e+07, + "geotherm_cost_recap_use_calc": 0, + "geotherm_cost_sales_tax_percent": 80, + "geotherm_cost_stim_non_drill": 6.47928e+06, "hc_ctl1": 0, "hc_ctl2": 0, "hc_ctl3": 0, @@ -54,9 +86,9 @@ "nameplate": 30000, "num_fractures": 6, "num_wells": 3, - "num_wells_getem": 4.23155, "pb_bd_frac": 0.013, "plant_efficiency_input": 80, + "ppi_base_year": 0, "prod_well_choice": 0, "pump_efficiency": 67.5, "q_sby_frac": 0.2, @@ -168,6 +200,7 @@ "rock_density": 2600, "rock_specific_heat": 950, "rock_thermal_conductivity": 3, + "sales_tax_rate": -999, "specified_pump_work_amount": 0, "specify_pump_work": 0, "startup_frac": 0.2, @@ -175,10 +208,8 @@ "stim_success_rate": 0, "stimulation_type": 0, "subsurface_water_loss": 2, - "system_use_lifetime_output": 0, "temp_decline_max": 30, "temp_decline_rate": 0.5, - "ui_calculations_only": 0, "well_flow_rate": 110, "wet_bulb_temp": 10 }, @@ -190,6 +221,34 @@ [0.000000, 0.000000, 0.000000] ], "adjust_timeindex": [0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000] + }, + "FinancialParameters": { + "analysis_period": 1 + }, + "Costs": { + "geotherm_cost_plant_total_amount_specified": 0 + }, + "FinancialParameters": { + "const_per_interest_rate1": -999, + "const_per_interest_rate2": -999, + "const_per_interest_rate3": -999, + "const_per_interest_rate4": -999, + "const_per_interest_rate5": -999, + "const_per_months1": -999, + "const_per_months2": -999, + "const_per_months3": -999, + "const_per_months4": -999, + "const_per_months5": -999, + "const_per_percent1": -999, + "const_per_percent2": -999, + "const_per_percent3": -999, + "const_per_percent4": -999, + "const_per_percent5": -999, + "const_per_upfront_rate1": -999, + "const_per_upfront_rate2": -999, + "const_per_upfront_rate3": -999, + "const_per_upfront_rate4": -999, + "const_per_upfront_rate5": -999 } } } \ No newline at end of file diff --git a/api/api_autogen/library/defaults/Geothermal_GeothermalPowerLeveragedPartnershipFlip.json b/api/api_autogen/library/defaults/Geothermal_GeothermalPowerLeveragedPartnershipFlip.json index e06f3bb4bd..1d01a1961e 100644 --- a/api/api_autogen/library/defaults/Geothermal_GeothermalPowerLeveragedPartnershipFlip.json +++ b/api/api_autogen/library/defaults/Geothermal_GeothermalPowerLeveragedPartnershipFlip.json @@ -1,8 +1,12 @@ { "defaults": { + "SystemControl": { + }, + "FinancialModel": { + "geo_financial_model": 2 + }, "GeoHourly": { "CT": 3, - "HTF": 3, "P_boil": 2, "P_cond_min": 1.25, "P_cond_ratio": 1.0028, @@ -10,7 +14,6 @@ "T_amb_des": 15, "T_approach": 5, "T_htf_cold_ref": 90, - "T_htf_hot_ref": 200, "allow_reservoir_replacements": 0, "ambient_pressure": 14.7, "analysis_type": 0, @@ -19,24 +22,53 @@ "dT_cw_ref": 10, "decline_type": 0, "delta_pressure_equip": 40, - "design_temp": 200, "drilling_success_rate": 76, "dt_prod_well": 0, "eta_ref": 0.17, "excess_pressure_pump": 50, - "exploration_wells_production": 2, "failed_prod_flow_ratio": 0.3, "fracture_angle": 15, "fracture_aperature": 0.0004, "fracture_length": 1000, "fracture_spacing": 50, "fracture_width": 175, + "geotherm_cost_conf_multiplier": 1.2, + "geotherm_cost_conf_non_drill": 250000, + "geotherm_cost_conf_num_wells": 4, + "geotherm_cost_confirm_wells_percent": 50, + "geotherm_cost_contingency_percent": 10, + "geotherm_cost_drilling_amount_specified": 0, + "geotherm_cost_drilling_calc": 1, + "geotherm_cost_epc_fixed": 0, + "geotherm_cost_epc_percent": 12, + "geotherm_cost_expl_lump_sum": 0, + "geotherm_cost_expl_multiplier": 0.5, + "geotherm_cost_expl_non_drill": 750000, + "geotherm_cost_expl_num_wells": 1, + "geotherm_cost_indirect_amount_specified": 0, + "geotherm_cost_indirect_calc": 1, + "geotherm_cost_inj_cost_curve": 0, "geotherm_cost_inj_cost_curve_welldiam": 0, "geotherm_cost_inj_cost_curve_welltype": 0, "geotherm_cost_inj_prod_well_ratio": 0.75, + "geotherm_cost_plant_auto_estimate": 0, + "geotherm_cost_plant_per_kW_input": 1800, + "geotherm_cost_plant_total_calc": 1, + "geotherm_cost_plm_fixed": 0, + "geotherm_cost_plm_percent": 3.5, + "geotherm_cost_prod_cost_curve": 0, "geotherm_cost_prod_cost_curve_welldiam": 0, "geotherm_cost_prod_cost_curve_welltype": 0, - "geothermal_analysis_period": 25, + "geotherm_cost_prod_inj_non_drill": 150000, + "geotherm_cost_pump_casing_cost": 0, + "geotherm_cost_pump_fixed": 0, + "geotherm_cost_pump_per_foot": 50, + "geotherm_cost_pumping_amount_specified": 0, + "geotherm_cost_pumping_calc": 1, + "geotherm_cost_recap_specified": 2.3e+07, + "geotherm_cost_recap_use_calc": 1, + "geotherm_cost_sales_tax_percent": 80, + "geotherm_cost_stim_non_drill": 0, "hc_ctl1": 0, "hc_ctl2": 0, "hc_ctl3": 0, @@ -54,9 +86,9 @@ "nameplate": 30000, "num_fractures": 6, "num_wells": 3, - "num_wells_getem": 4.07451, "pb_bd_frac": 0.013, "plant_efficiency_input": 80, + "ppi_base_year": 0, "prod_well_choice": 0, "pump_efficiency": 67.5, "q_sby_frac": 0.2, @@ -168,6 +200,7 @@ "rock_density": 2600, "rock_specific_heat": 950, "rock_thermal_conductivity": 3, + "sales_tax_rate": 5, "specified_pump_work_amount": 0, "specify_pump_work": 0, "start_day_of_year": 0, @@ -176,10 +209,8 @@ "stim_success_rate": 0, "stimulation_type": 0, "subsurface_water_loss": 2, - "system_use_lifetime_output": 1, "temp_decline_max": 30, "temp_decline_rate": 0.5, - "ui_calculations_only": 0, "well_flow_rate": 110, "wet_bulb_temp": 10 }, @@ -191,6 +222,34 @@ [0.000000, 0.000000, 0.000000] ], "adjust_timeindex": [0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000] + }, + "FinancialParameters": { + "analysis_period": 25 + }, + "Costs": { + "geotherm_cost_plant_total_amount_specified": 0 + }, + "FinancialParameters": { + "const_per_interest_rate1": 6.5, + "const_per_interest_rate2": 7, + "const_per_interest_rate3": 0, + "const_per_interest_rate4": 0, + "const_per_interest_rate5": 0, + "const_per_months1": 60, + "const_per_months2": 24, + "const_per_months3": 0, + "const_per_months4": 0, + "const_per_months5": 0, + "const_per_percent1": 40, + "const_per_percent2": 60, + "const_per_percent3": 0, + "const_per_percent4": 0, + "const_per_percent5": 0, + "const_per_upfront_rate1": 1, + "const_per_upfront_rate2": 2, + "const_per_upfront_rate3": 0, + "const_per_upfront_rate4": 0, + "const_per_upfront_rate5": 0 } } } \ No newline at end of file diff --git a/api/api_autogen/library/defaults/Geothermal_GeothermalPowerMerchantPlant.json b/api/api_autogen/library/defaults/Geothermal_GeothermalPowerMerchantPlant.json index e06f3bb4bd..0222769cd6 100644 --- a/api/api_autogen/library/defaults/Geothermal_GeothermalPowerMerchantPlant.json +++ b/api/api_autogen/library/defaults/Geothermal_GeothermalPowerMerchantPlant.json @@ -1,8 +1,12 @@ { "defaults": { + "SystemControl": { + }, + "FinancialModel": { + "geo_financial_model": 6 + }, "GeoHourly": { "CT": 3, - "HTF": 3, "P_boil": 2, "P_cond_min": 1.25, "P_cond_ratio": 1.0028, @@ -10,7 +14,6 @@ "T_amb_des": 15, "T_approach": 5, "T_htf_cold_ref": 90, - "T_htf_hot_ref": 200, "allow_reservoir_replacements": 0, "ambient_pressure": 14.7, "analysis_type": 0, @@ -19,24 +22,53 @@ "dT_cw_ref": 10, "decline_type": 0, "delta_pressure_equip": 40, - "design_temp": 200, "drilling_success_rate": 76, "dt_prod_well": 0, "eta_ref": 0.17, "excess_pressure_pump": 50, - "exploration_wells_production": 2, "failed_prod_flow_ratio": 0.3, "fracture_angle": 15, "fracture_aperature": 0.0004, "fracture_length": 1000, "fracture_spacing": 50, "fracture_width": 175, + "geotherm_cost_conf_multiplier": 1.2, + "geotherm_cost_conf_non_drill": 250000, + "geotherm_cost_conf_num_wells": 4, + "geotherm_cost_confirm_wells_percent": 50, + "geotherm_cost_contingency_percent": 10, + "geotherm_cost_drilling_amount_specified": 0, + "geotherm_cost_drilling_calc": 1, + "geotherm_cost_epc_fixed": 0, + "geotherm_cost_epc_percent": 12, + "geotherm_cost_expl_lump_sum": 0, + "geotherm_cost_expl_multiplier": 0.5, + "geotherm_cost_expl_non_drill": 750000, + "geotherm_cost_expl_num_wells": 1, + "geotherm_cost_indirect_amount_specified": 0, + "geotherm_cost_indirect_calc": 1, + "geotherm_cost_inj_cost_curve": 0, "geotherm_cost_inj_cost_curve_welldiam": 0, "geotherm_cost_inj_cost_curve_welltype": 0, "geotherm_cost_inj_prod_well_ratio": 0.75, + "geotherm_cost_plant_auto_estimate": 0, + "geotherm_cost_plant_per_kW_input": 1800, + "geotherm_cost_plant_total_calc": 1, + "geotherm_cost_plm_fixed": 0, + "geotherm_cost_plm_percent": 3.5, + "geotherm_cost_prod_cost_curve": 0, "geotherm_cost_prod_cost_curve_welldiam": 0, "geotherm_cost_prod_cost_curve_welltype": 0, - "geothermal_analysis_period": 25, + "geotherm_cost_prod_inj_non_drill": 150000, + "geotherm_cost_pump_casing_cost": 0, + "geotherm_cost_pump_fixed": 0, + "geotherm_cost_pump_per_foot": 50, + "geotherm_cost_pumping_amount_specified": 0, + "geotherm_cost_pumping_calc": 1, + "geotherm_cost_recap_specified": 2.3e+07, + "geotherm_cost_recap_use_calc": 1, + "geotherm_cost_sales_tax_percent": 80, + "geotherm_cost_stim_non_drill": 0, "hc_ctl1": 0, "hc_ctl2": 0, "hc_ctl3": 0, @@ -54,9 +86,9 @@ "nameplate": 30000, "num_fractures": 6, "num_wells": 3, - "num_wells_getem": 4.07451, "pb_bd_frac": 0.013, "plant_efficiency_input": 80, + "ppi_base_year": 0, "prod_well_choice": 0, "pump_efficiency": 67.5, "q_sby_frac": 0.2, @@ -168,6 +200,7 @@ "rock_density": 2600, "rock_specific_heat": 950, "rock_thermal_conductivity": 3, + "sales_tax_rate": 5, "specified_pump_work_amount": 0, "specify_pump_work": 0, "start_day_of_year": 0, @@ -176,10 +209,8 @@ "stim_success_rate": 0, "stimulation_type": 0, "subsurface_water_loss": 2, - "system_use_lifetime_output": 1, "temp_decline_max": 30, "temp_decline_rate": 0.5, - "ui_calculations_only": 0, "well_flow_rate": 110, "wet_bulb_temp": 10 }, @@ -191,6 +222,34 @@ [0.000000, 0.000000, 0.000000] ], "adjust_timeindex": [0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000] + }, + "FinancialParameters": { + "analysis_period": 25 + }, + "Costs": { + "geotherm_cost_plant_total_amount_specified": 0 + }, + "FinancialParameters": { + "const_per_interest_rate1": 6.5, + "const_per_interest_rate2": 7, + "const_per_interest_rate3": 0, + "const_per_interest_rate4": 0, + "const_per_interest_rate5": 0, + "const_per_months1": 60, + "const_per_months2": 24, + "const_per_months3": 0, + "const_per_months4": 0, + "const_per_months5": 0, + "const_per_percent1": 40, + "const_per_percent2": 60, + "const_per_percent3": 0, + "const_per_percent4": 0, + "const_per_percent5": 0, + "const_per_upfront_rate1": 1, + "const_per_upfront_rate2": 2, + "const_per_upfront_rate3": 0, + "const_per_upfront_rate4": 0, + "const_per_upfront_rate5": 0 } } } \ No newline at end of file diff --git a/api/api_autogen/library/defaults/Geothermal_GeothermalPowerSaleLeaseback.json b/api/api_autogen/library/defaults/Geothermal_GeothermalPowerSaleLeaseback.json index e06f3bb4bd..907cb408ec 100644 --- a/api/api_autogen/library/defaults/Geothermal_GeothermalPowerSaleLeaseback.json +++ b/api/api_autogen/library/defaults/Geothermal_GeothermalPowerSaleLeaseback.json @@ -1,8 +1,12 @@ { "defaults": { + "SystemControl": { + }, + "FinancialModel": { + "geo_financial_model": 4 + }, "GeoHourly": { "CT": 3, - "HTF": 3, "P_boil": 2, "P_cond_min": 1.25, "P_cond_ratio": 1.0028, @@ -10,7 +14,6 @@ "T_amb_des": 15, "T_approach": 5, "T_htf_cold_ref": 90, - "T_htf_hot_ref": 200, "allow_reservoir_replacements": 0, "ambient_pressure": 14.7, "analysis_type": 0, @@ -19,24 +22,53 @@ "dT_cw_ref": 10, "decline_type": 0, "delta_pressure_equip": 40, - "design_temp": 200, "drilling_success_rate": 76, "dt_prod_well": 0, "eta_ref": 0.17, "excess_pressure_pump": 50, - "exploration_wells_production": 2, "failed_prod_flow_ratio": 0.3, "fracture_angle": 15, "fracture_aperature": 0.0004, "fracture_length": 1000, "fracture_spacing": 50, "fracture_width": 175, + "geotherm_cost_conf_multiplier": 1.2, + "geotherm_cost_conf_non_drill": 250000, + "geotherm_cost_conf_num_wells": 4, + "geotherm_cost_confirm_wells_percent": 50, + "geotherm_cost_contingency_percent": 10, + "geotherm_cost_drilling_amount_specified": 0, + "geotherm_cost_drilling_calc": 1, + "geotherm_cost_epc_fixed": 0, + "geotherm_cost_epc_percent": 12, + "geotherm_cost_expl_lump_sum": 0, + "geotherm_cost_expl_multiplier": 0.5, + "geotherm_cost_expl_non_drill": 750000, + "geotherm_cost_expl_num_wells": 1, + "geotherm_cost_indirect_amount_specified": 0, + "geotherm_cost_indirect_calc": 1, + "geotherm_cost_inj_cost_curve": 0, "geotherm_cost_inj_cost_curve_welldiam": 0, "geotherm_cost_inj_cost_curve_welltype": 0, "geotherm_cost_inj_prod_well_ratio": 0.75, + "geotherm_cost_plant_auto_estimate": 0, + "geotherm_cost_plant_per_kW_input": 1800, + "geotherm_cost_plant_total_calc": 1, + "geotherm_cost_plm_fixed": 0, + "geotherm_cost_plm_percent": 3.5, + "geotherm_cost_prod_cost_curve": 0, "geotherm_cost_prod_cost_curve_welldiam": 0, "geotherm_cost_prod_cost_curve_welltype": 0, - "geothermal_analysis_period": 25, + "geotherm_cost_prod_inj_non_drill": 150000, + "geotherm_cost_pump_casing_cost": 0, + "geotherm_cost_pump_fixed": 0, + "geotherm_cost_pump_per_foot": 50, + "geotherm_cost_pumping_amount_specified": 0, + "geotherm_cost_pumping_calc": 1, + "geotherm_cost_recap_specified": 2.3e+07, + "geotherm_cost_recap_use_calc": 1, + "geotherm_cost_sales_tax_percent": 80, + "geotherm_cost_stim_non_drill": 0, "hc_ctl1": 0, "hc_ctl2": 0, "hc_ctl3": 0, @@ -54,9 +86,9 @@ "nameplate": 30000, "num_fractures": 6, "num_wells": 3, - "num_wells_getem": 4.07451, "pb_bd_frac": 0.013, "plant_efficiency_input": 80, + "ppi_base_year": 0, "prod_well_choice": 0, "pump_efficiency": 67.5, "q_sby_frac": 0.2, @@ -168,6 +200,7 @@ "rock_density": 2600, "rock_specific_heat": 950, "rock_thermal_conductivity": 3, + "sales_tax_rate": 5, "specified_pump_work_amount": 0, "specify_pump_work": 0, "start_day_of_year": 0, @@ -176,10 +209,8 @@ "stim_success_rate": 0, "stimulation_type": 0, "subsurface_water_loss": 2, - "system_use_lifetime_output": 1, "temp_decline_max": 30, "temp_decline_rate": 0.5, - "ui_calculations_only": 0, "well_flow_rate": 110, "wet_bulb_temp": 10 }, @@ -191,6 +222,34 @@ [0.000000, 0.000000, 0.000000] ], "adjust_timeindex": [0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000] + }, + "FinancialParameters": { + "analysis_period": 25 + }, + "Costs": { + "geotherm_cost_plant_total_amount_specified": 0 + }, + "FinancialParameters": { + "const_per_interest_rate1": 6.5, + "const_per_interest_rate2": 7, + "const_per_interest_rate3": 0, + "const_per_interest_rate4": 0, + "const_per_interest_rate5": 0, + "const_per_months1": 60, + "const_per_months2": 24, + "const_per_months3": 0, + "const_per_months4": 0, + "const_per_months5": 0, + "const_per_percent1": 40, + "const_per_percent2": 60, + "const_per_percent3": 0, + "const_per_percent4": 0, + "const_per_percent5": 0, + "const_per_upfront_rate1": 1, + "const_per_upfront_rate2": 2, + "const_per_upfront_rate3": 0, + "const_per_upfront_rate4": 0, + "const_per_upfront_rate5": 0 } } } \ No newline at end of file diff --git a/api/api_autogen/library/defaults/Geothermal_GeothermalPowerSingleOwner.json b/api/api_autogen/library/defaults/Geothermal_GeothermalPowerSingleOwner.json index 07ed6206ad..a568807842 100644 --- a/api/api_autogen/library/defaults/Geothermal_GeothermalPowerSingleOwner.json +++ b/api/api_autogen/library/defaults/Geothermal_GeothermalPowerSingleOwner.json @@ -1,8 +1,12 @@ { "defaults": { + "SystemControl": { + }, + "FinancialModel": { + "geo_financial_model": 1 + }, "GeoHourly": { "CT": 3, - "HTF": 3, "P_boil": 2, "P_cond_min": 1.25, "P_cond_ratio": 1.0028, @@ -10,7 +14,6 @@ "T_amb_des": 15, "T_approach": 5, "T_htf_cold_ref": 90, - "T_htf_hot_ref": 200, "allow_reservoir_replacements": 0, "ambient_pressure": 14.7, "analysis_type": 0, @@ -19,24 +22,53 @@ "dT_cw_ref": 10, "decline_type": 0, "delta_pressure_equip": 40, - "design_temp": 200, "drilling_success_rate": 76, "dt_prod_well": 0, "eta_ref": 0.17, "excess_pressure_pump": 50, - "exploration_wells_production": 1.5, "failed_prod_flow_ratio": 0.3, "fracture_angle": 15, "fracture_aperature": 0.0004, "fracture_length": 1000, "fracture_spacing": 50, "fracture_width": 175, + "geotherm_cost_conf_multiplier": 1.2, + "geotherm_cost_conf_non_drill": 250000, + "geotherm_cost_conf_num_wells": 3, + "geotherm_cost_confirm_wells_percent": 50, + "geotherm_cost_contingency_percent": 10, + "geotherm_cost_drilling_amount_specified": 0, + "geotherm_cost_drilling_calc": 1, + "geotherm_cost_epc_fixed": 0, + "geotherm_cost_epc_percent": 12, + "geotherm_cost_expl_lump_sum": 0, + "geotherm_cost_expl_multiplier": 0.5, + "geotherm_cost_expl_non_drill": 750000, + "geotherm_cost_expl_num_wells": 1, + "geotherm_cost_indirect_amount_specified": 0, + "geotherm_cost_indirect_calc": 1, + "geotherm_cost_inj_cost_curve": 0, "geotherm_cost_inj_cost_curve_welldiam": 1, "geotherm_cost_inj_cost_curve_welltype": 0, "geotherm_cost_inj_prod_well_ratio": 0.75, + "geotherm_cost_plant_auto_estimate": 1, + "geotherm_cost_plant_per_kW_input": 1800, + "geotherm_cost_plant_total_calc": 1, + "geotherm_cost_plm_fixed": 0, + "geotherm_cost_plm_percent": 3.5, + "geotherm_cost_prod_cost_curve": 0, "geotherm_cost_prod_cost_curve_welldiam": 0, "geotherm_cost_prod_cost_curve_welltype": 0, - "geothermal_analysis_period": 30, + "geotherm_cost_prod_inj_non_drill": 150000, + "geotherm_cost_pump_casing_cost": 0, + "geotherm_cost_pump_fixed": 0, + "geotherm_cost_pump_per_foot": 50, + "geotherm_cost_pumping_amount_specified": 0, + "geotherm_cost_pumping_calc": 1, + "geotherm_cost_recap_specified": 2.3e+07, + "geotherm_cost_recap_use_calc": 1, + "geotherm_cost_sales_tax_percent": 80, + "geotherm_cost_stim_non_drill": 0, "hc_ctl1": 0, "hc_ctl2": 0, "hc_ctl3": 0, @@ -54,9 +86,9 @@ "nameplate": 40000, "num_fractures": 6, "num_wells": 3, - "num_wells_getem": 5.5592, "pb_bd_frac": 0.013, "plant_efficiency_input": 80.6, + "ppi_base_year": 27, "prod_well_choice": 0, "pump_efficiency": 67.5, "q_sby_frac": 0.2, @@ -168,6 +200,7 @@ "rock_density": 2600, "rock_specific_heat": 950, "rock_thermal_conductivity": 3, + "sales_tax_rate": 5, "specified_pump_work_amount": 0, "specify_pump_work": 0, "start_day_of_year": 0, @@ -176,10 +209,8 @@ "stim_success_rate": 0, "stimulation_type": 0, "subsurface_water_loss": 2, - "system_use_lifetime_output": 1, "temp_decline_max": 30, "temp_decline_rate": 0.5, - "ui_calculations_only": 0, "well_flow_rate": 110, "wet_bulb_temp": 10 }, @@ -191,6 +222,34 @@ [0.000000, 0.000000, 0.000000] ], "adjust_timeindex": [0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000] + }, + "FinancialParameters": { + "analysis_period": 30 + }, + "Costs": { + "geotherm_cost_plant_total_amount_specified": 0 + }, + "FinancialParameters": { + "const_per_interest_rate1": 6.5, + "const_per_interest_rate2": 7, + "const_per_interest_rate3": 0, + "const_per_interest_rate4": 0, + "const_per_interest_rate5": 0, + "const_per_months1": 60, + "const_per_months2": 24, + "const_per_months3": 0, + "const_per_months4": 0, + "const_per_months5": 0, + "const_per_percent1": 40, + "const_per_percent2": 60, + "const_per_percent3": 0, + "const_per_percent4": 0, + "const_per_percent5": 0, + "const_per_upfront_rate1": 1, + "const_per_upfront_rate2": 2, + "const_per_upfront_rate3": 0, + "const_per_upfront_rate4": 0, + "const_per_upfront_rate5": 0 } } } \ No newline at end of file diff --git a/api/api_autogen/library/defaults/Grid_GeothermalPowerLCOECalculator.json b/api/api_autogen/library/defaults/Grid_GeothermalPowerLCOECalculator.json index d826072755..31b0c12d3e 100644 --- a/api/api_autogen/library/defaults/Grid_GeothermalPowerLCOECalculator.json +++ b/api/api_autogen/library/defaults/Grid_GeothermalPowerLCOECalculator.json @@ -1,6 +1,7 @@ { "defaults": { "Lifetime": { + "analysis_period": 1, "system_use_lifetime_output": 0 }, "SystemOutput": { diff --git a/api/api_autogen/library/defaults/Grid_GeothermalPowerNone.json b/api/api_autogen/library/defaults/Grid_GeothermalPowerNone.json index d826072755..8bf3f9de35 100644 --- a/api/api_autogen/library/defaults/Grid_GeothermalPowerNone.json +++ b/api/api_autogen/library/defaults/Grid_GeothermalPowerNone.json @@ -1,6 +1,7 @@ { "defaults": { "Lifetime": { + "analysis_period": 0, "system_use_lifetime_output": 0 }, "SystemOutput": { diff --git a/api/api_autogen/library/defaults/LcoefcrElectricity_GeothermalPowerLCOECalculator.json b/api/api_autogen/library/defaults/LcoefcrElectricity_GeothermalPowerLCOECalculator.json new file mode 100644 index 0000000000..130b452454 --- /dev/null +++ b/api/api_autogen/library/defaults/LcoefcrElectricity_GeothermalPowerLCOECalculator.json @@ -0,0 +1,24 @@ +{ + "defaults": { + "SystemControl": { + }, + "SimpleLCOE": { + "c_construction_cost": [40.000000, 30.000000, 20.000000, 10.000000], + "c_construction_interest": 6.5, + "c_debt_percent": 60, + "c_depreciation_schedule": [20.000000, 32.000000, 19.200000, 11.520000, 11.520000, 5.760000], + "c_equity_return": 13, + "c_inflation": 2.5, + "c_lifetime": 20, + "c_nominal_interest_rate": 7, + "c_tax_rate": 28, + "fixed_operating_cost": 6.0877e+06, + "ui_fcr_input_option": 1, + "ui_fixed_charge_rate": 0.098, + "variable_operating_cost": 0 + }, + "SystemCosts": { + "total_installed_cost": 1.87886e+08 + } + } +} \ No newline at end of file diff --git a/api/api_autogen/library/defaults/Lcoefcr_GeothermalPowerLCOECalculator.json b/api/api_autogen/library/defaults/Lcoefcr_GeothermalPowerLCOECalculator.json deleted file mode 100644 index a512f93c6b..0000000000 --- a/api/api_autogen/library/defaults/Lcoefcr_GeothermalPowerLCOECalculator.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "defaults": { - "SimpleLCOE": { - "annual_energy": 0, - "capital_cost": 1.27243e+08, - "fixed_charge_rate": 0.0971998, - "fixed_operating_cost": 6.0877e+06, - "variable_operating_cost": 0 - } - } -} \ No newline at end of file diff --git a/api/api_autogen/library/defaults/Levpartflip_GeothermalPowerLeveragedPartnershipFlip.json b/api/api_autogen/library/defaults/Levpartflip_GeothermalPowerLeveragedPartnershipFlip.json index b8c2fcfbb3..45ebfb182f 100644 --- a/api/api_autogen/library/defaults/Levpartflip_GeothermalPowerLeveragedPartnershipFlip.json +++ b/api/api_autogen/library/defaults/Levpartflip_GeothermalPowerLeveragedPartnershipFlip.json @@ -251,7 +251,7 @@ "pbi_uti_term": 0 }, "SystemOutput": { - "degradation": [0.000000], + "degradation": [0], "gen": [0.000000], "system_capacity": 32813.6 }, @@ -261,8 +261,6 @@ "loan_moratorium": 0 }, "Recapitalization": { - "system_recapitalization_cost": 4.15803e+07, - "system_use_recapitalization": 1 }, "TimeOfDelivery": { "system_use_lifetime_output": 1 diff --git a/api/api_autogen/library/defaults/Merchantplant_GeothermalPowerMerchantPlant.json b/api/api_autogen/library/defaults/Merchantplant_GeothermalPowerMerchantPlant.json index fd024a9634..27ef95b924 100644 --- a/api/api_autogen/library/defaults/Merchantplant_GeothermalPowerMerchantPlant.json +++ b/api/api_autogen/library/defaults/Merchantplant_GeothermalPowerMerchantPlant.json @@ -46,8 +46,6 @@ "om_fixed_escal": 0, "om_production": [0.000000], "om_production_escal": 0, - "system_recapitalization_cost": 4.15803e+07, - "system_use_recapitalization": 1, "total_installed_cost": 1.32084e+08 }, "LandLease": { @@ -219266,7 +219264,7 @@ "ElectricityRates": { }, "SystemOutput": { - "degradation": [0.000000], + "degradation": [0], "gen": [0.000000], "system_capacity": 32813.6 }, diff --git a/api/api_autogen/library/defaults/Saleleaseback_GeothermalPowerSaleLeaseback.json b/api/api_autogen/library/defaults/Saleleaseback_GeothermalPowerSaleLeaseback.json index a80fa7aad8..541edd3c0e 100644 --- a/api/api_autogen/library/defaults/Saleleaseback_GeothermalPowerSaleLeaseback.json +++ b/api/api_autogen/library/defaults/Saleleaseback_GeothermalPowerSaleLeaseback.json @@ -226,7 +226,7 @@ "pbi_uti_term": 0 }, "SystemOutput": { - "degradation": [0.000000], + "degradation": [0], "gen": [0.000000], "system_capacity": 32813.6 }, @@ -244,9 +244,7 @@ "salvage_percentage": 0, "sponsor_operating_margin": 20, "sponsor_operating_margin_escalation": 2, - "system_recapitalization_cost": 4.15803e+07, "system_use_lifetime_output": 1, - "system_use_recapitalization": 1, "tax_investor_required_lease_reserve": 6, "total_installed_cost": 1.32084e+08 }, diff --git a/api/api_autogen/library/defaults/Singleowner_GeothermalPowerSingleOwner.json b/api/api_autogen/library/defaults/Singleowner_GeothermalPowerSingleOwner.json index 870a4c5e15..6838b26ae3 100644 --- a/api/api_autogen/library/defaults/Singleowner_GeothermalPowerSingleOwner.json +++ b/api/api_autogen/library/defaults/Singleowner_GeothermalPowerSingleOwner.json @@ -84,8 +84,6 @@ "om_fixed_escal": 0, "om_production": [0.000000], "om_production_escal": 0, - "system_recapitalization_cost": 5.96904e+07, - "system_use_recapitalization": 1, "total_installed_cost": 2.39499e+08 }, "LandLease": { @@ -259,7 +257,6 @@ "start_day_of_year": 0 }, "SystemOutput": { - "degradation": [0.000000], "gen": [0.000000], "system_capacity": 45106.2 }, diff --git a/api/include/SAM_CbConstructionFinancing.h b/api/include/SAM_CbConstructionFinancing.h index 8d5514b56b..b18d24fab3 100644 --- a/api/include/SAM_CbConstructionFinancing.h +++ b/api/include/SAM_CbConstructionFinancing.h @@ -27,19 +27,6 @@ extern "C" SAM_EXPORT int SAM_CbConstructionFinancing_execute(SAM_table data, int verbosity, SAM_error* err); - // - // SystemCosts parameters - // - - /** - * Set total_installed_cost: Total installed cost [$] - * options: None - * constraints: None - * required if: * - */ - SAM_EXPORT void SAM_CbConstructionFinancing_SystemCosts_total_installed_cost_nset(SAM_table ptr, double number, SAM_error *err); - - // // FinancialParameters parameters // @@ -48,7 +35,7 @@ extern "C" * Set const_per_interest_rate1: Interest rate, loan 1 [%] * options: None * constraints: None - * required if: * + * required if: None */ SAM_EXPORT void SAM_CbConstructionFinancing_FinancialParameters_const_per_interest_rate1_nset(SAM_table ptr, double number, SAM_error *err); @@ -56,7 +43,7 @@ extern "C" * Set const_per_interest_rate2: Interest rate, loan 2 [%] * options: None * constraints: None - * required if: * + * required if: None */ SAM_EXPORT void SAM_CbConstructionFinancing_FinancialParameters_const_per_interest_rate2_nset(SAM_table ptr, double number, SAM_error *err); @@ -64,7 +51,7 @@ extern "C" * Set const_per_interest_rate3: Interest rate, loan 3 [%] * options: None * constraints: None - * required if: * + * required if: None */ SAM_EXPORT void SAM_CbConstructionFinancing_FinancialParameters_const_per_interest_rate3_nset(SAM_table ptr, double number, SAM_error *err); @@ -72,7 +59,7 @@ extern "C" * Set const_per_interest_rate4: Interest rate, loan 4 [%] * options: None * constraints: None - * required if: * + * required if: None */ SAM_EXPORT void SAM_CbConstructionFinancing_FinancialParameters_const_per_interest_rate4_nset(SAM_table ptr, double number, SAM_error *err); @@ -80,7 +67,7 @@ extern "C" * Set const_per_interest_rate5: Interest rate, loan 5 [%] * options: None * constraints: None - * required if: * + * required if: None */ SAM_EXPORT void SAM_CbConstructionFinancing_FinancialParameters_const_per_interest_rate5_nset(SAM_table ptr, double number, SAM_error *err); @@ -88,7 +75,7 @@ extern "C" * Set const_per_months1: Months prior to operation, loan 1 * options: None * constraints: None - * required if: * + * required if: None */ SAM_EXPORT void SAM_CbConstructionFinancing_FinancialParameters_const_per_months1_nset(SAM_table ptr, double number, SAM_error *err); @@ -96,7 +83,7 @@ extern "C" * Set const_per_months2: Months prior to operation, loan 2 * options: None * constraints: None - * required if: * + * required if: None */ SAM_EXPORT void SAM_CbConstructionFinancing_FinancialParameters_const_per_months2_nset(SAM_table ptr, double number, SAM_error *err); @@ -104,7 +91,7 @@ extern "C" * Set const_per_months3: Months prior to operation, loan 3 * options: None * constraints: None - * required if: * + * required if: None */ SAM_EXPORT void SAM_CbConstructionFinancing_FinancialParameters_const_per_months3_nset(SAM_table ptr, double number, SAM_error *err); @@ -112,7 +99,7 @@ extern "C" * Set const_per_months4: Months prior to operation, loan 4 * options: None * constraints: None - * required if: * + * required if: None */ SAM_EXPORT void SAM_CbConstructionFinancing_FinancialParameters_const_per_months4_nset(SAM_table ptr, double number, SAM_error *err); @@ -120,7 +107,7 @@ extern "C" * Set const_per_months5: Months prior to operation, loan 5 * options: None * constraints: None - * required if: * + * required if: None */ SAM_EXPORT void SAM_CbConstructionFinancing_FinancialParameters_const_per_months5_nset(SAM_table ptr, double number, SAM_error *err); @@ -128,7 +115,7 @@ extern "C" * Set const_per_percent1: Percent of tot. installed cost, loan 1 [%] * options: None * constraints: None - * required if: * + * required if: None */ SAM_EXPORT void SAM_CbConstructionFinancing_FinancialParameters_const_per_percent1_nset(SAM_table ptr, double number, SAM_error *err); @@ -136,7 +123,7 @@ extern "C" * Set const_per_percent2: Percent of tot. installed cost, loan 2 [%] * options: None * constraints: None - * required if: * + * required if: None */ SAM_EXPORT void SAM_CbConstructionFinancing_FinancialParameters_const_per_percent2_nset(SAM_table ptr, double number, SAM_error *err); @@ -144,7 +131,7 @@ extern "C" * Set const_per_percent3: Percent of tot. installed cost, loan 3 [%] * options: None * constraints: None - * required if: * + * required if: None */ SAM_EXPORT void SAM_CbConstructionFinancing_FinancialParameters_const_per_percent3_nset(SAM_table ptr, double number, SAM_error *err); @@ -152,7 +139,7 @@ extern "C" * Set const_per_percent4: Percent of tot. installed cost, loan 4 [%] * options: None * constraints: None - * required if: * + * required if: None */ SAM_EXPORT void SAM_CbConstructionFinancing_FinancialParameters_const_per_percent4_nset(SAM_table ptr, double number, SAM_error *err); @@ -160,7 +147,7 @@ extern "C" * Set const_per_percent5: Percent of tot. installed cost, loan 5 [%] * options: None * constraints: None - * required if: * + * required if: None */ SAM_EXPORT void SAM_CbConstructionFinancing_FinancialParameters_const_per_percent5_nset(SAM_table ptr, double number, SAM_error *err); @@ -168,7 +155,7 @@ extern "C" * Set const_per_upfront_rate1: Upfront fee on principal, loan 1 [%] * options: None * constraints: None - * required if: * + * required if: None */ SAM_EXPORT void SAM_CbConstructionFinancing_FinancialParameters_const_per_upfront_rate1_nset(SAM_table ptr, double number, SAM_error *err); @@ -176,7 +163,7 @@ extern "C" * Set const_per_upfront_rate2: Upfront fee on principal, loan 2 [%] * options: None * constraints: None - * required if: * + * required if: None */ SAM_EXPORT void SAM_CbConstructionFinancing_FinancialParameters_const_per_upfront_rate2_nset(SAM_table ptr, double number, SAM_error *err); @@ -184,7 +171,7 @@ extern "C" * Set const_per_upfront_rate3: Upfront fee on principal, loan 3 [%] * options: None * constraints: None - * required if: * + * required if: None */ SAM_EXPORT void SAM_CbConstructionFinancing_FinancialParameters_const_per_upfront_rate3_nset(SAM_table ptr, double number, SAM_error *err); @@ -192,7 +179,7 @@ extern "C" * Set const_per_upfront_rate4: Upfront fee on principal, loan 4 [%] * options: None * constraints: None - * required if: * + * required if: None */ SAM_EXPORT void SAM_CbConstructionFinancing_FinancialParameters_const_per_upfront_rate4_nset(SAM_table ptr, double number, SAM_error *err); @@ -200,16 +187,22 @@ extern "C" * Set const_per_upfront_rate5: Upfront fee on principal, loan 5 [%] * options: None * constraints: None - * required if: * + * required if: None */ SAM_EXPORT void SAM_CbConstructionFinancing_FinancialParameters_const_per_upfront_rate5_nset(SAM_table ptr, double number, SAM_error *err); + // + // SystemCosts parameters + // + /** - * SystemCosts Getters + * Set total_installed_cost: Total installed cost [$] + * options: None + * constraints: None + * required if: None */ - - SAM_EXPORT double SAM_CbConstructionFinancing_SystemCosts_total_installed_cost_nget(SAM_table ptr, SAM_error *err); + SAM_EXPORT void SAM_CbConstructionFinancing_SystemCosts_total_installed_cost_nset(SAM_table ptr, double number, SAM_error *err); /** @@ -257,6 +250,13 @@ extern "C" SAM_EXPORT double SAM_CbConstructionFinancing_FinancialParameters_const_per_upfront_rate5_nget(SAM_table ptr, SAM_error *err); + /** + * SystemCosts Getters + */ + + SAM_EXPORT double SAM_CbConstructionFinancing_SystemCosts_total_installed_cost_nget(SAM_table ptr, SAM_error *err); + + /** * Outputs Getters */ diff --git a/api/include/SAM_Geothermal.h b/api/include/SAM_Geothermal.h index 1cb0147672..06da9270c5 100644 --- a/api/include/SAM_Geothermal.h +++ b/api/include/SAM_Geothermal.h @@ -28,30 +28,48 @@ extern "C" // - // GeoHourly parameters + // SystemControl parameters // /** - * Set CT: Condenser type (Wet, Dry,Hybrid) [(1-3)] + * Set sim_type: 1 (default): timeseries, 2: design only * options: None - * constraints: INTEGER - * required if: ui_calculations_only=0 + * constraints: None + * required if: ?=1 */ - SAM_EXPORT void SAM_Geothermal_GeoHourly_CT_nset(SAM_table ptr, double number, SAM_error *err); + SAM_EXPORT void SAM_Geothermal_SystemControl_sim_type_nset(SAM_table ptr, double number, SAM_error *err); + + + // + // FinancialModel parameters + // + + /** + * Set geo_financial_model: [1-8] + * options: None + * constraints: INTEGER,MIN=0 + * required if: ?=1 + */ + SAM_EXPORT void SAM_Geothermal_FinancialModel_geo_financial_model_nset(SAM_table ptr, double number, SAM_error *err); + + + // + // GeoHourly parameters + // /** - * Set HTF: Heat trans fluid type ID [(1-27)] + * Set CT: Condenser type (Wet, Dry,Hybrid) [(1-3)] * options: None * constraints: INTEGER - * required if: ui_calculations_only=0 + * required if: sim_type=1 */ - SAM_EXPORT void SAM_Geothermal_GeoHourly_HTF_nset(SAM_table ptr, double number, SAM_error *err); + SAM_EXPORT void SAM_Geothermal_GeoHourly_CT_nset(SAM_table ptr, double number, SAM_error *err); /** * Set P_boil: Design Boiler Pressure [bar] * options: None * constraints: None - * required if: ui_calculations_only=0 + * required if: sim_type=1 */ SAM_EXPORT void SAM_Geothermal_GeoHourly_P_boil_nset(SAM_table ptr, double number, SAM_error *err); @@ -59,7 +77,7 @@ extern "C" * Set P_cond_min: Minimum condenser pressure [in Hg] * options: None * constraints: None - * required if: ui_calculations_only=0 + * required if: sim_type=1 */ SAM_EXPORT void SAM_Geothermal_GeoHourly_P_cond_min_nset(SAM_table ptr, double number, SAM_error *err); @@ -67,7 +85,7 @@ extern "C" * Set P_cond_ratio: Condenser pressure ratio * options: None * constraints: None - * required if: ui_calculations_only=0 + * required if: sim_type=1 */ SAM_EXPORT void SAM_Geothermal_GeoHourly_P_cond_ratio_nset(SAM_table ptr, double number, SAM_error *err); @@ -75,7 +93,7 @@ extern "C" * Set T_ITD_des: Design ITD for dry system [C] * options: None * constraints: None - * required if: ui_calculations_only=0 + * required if: sim_type=1 */ SAM_EXPORT void SAM_Geothermal_GeoHourly_T_ITD_des_nset(SAM_table ptr, double number, SAM_error *err); @@ -83,7 +101,7 @@ extern "C" * Set T_amb_des: Design ambient temperature [C] * options: None * constraints: None - * required if: ui_calculations_only=0 + * required if: sim_type=1 */ SAM_EXPORT void SAM_Geothermal_GeoHourly_T_amb_des_nset(SAM_table ptr, double number, SAM_error *err); @@ -91,7 +109,7 @@ extern "C" * Set T_approach: Approach Temperature [C] * options: None * constraints: None - * required if: ui_calculations_only=0 + * required if: sim_type=1 */ SAM_EXPORT void SAM_Geothermal_GeoHourly_T_approach_nset(SAM_table ptr, double number, SAM_error *err); @@ -99,18 +117,10 @@ extern "C" * Set T_htf_cold_ref: Outlet design temp [C] * options: None * constraints: None - * required if: ui_calculations_only=0 + * required if: sim_type=1 */ SAM_EXPORT void SAM_Geothermal_GeoHourly_T_htf_cold_ref_nset(SAM_table ptr, double number, SAM_error *err); - /** - * Set T_htf_hot_ref: Inlet design temp [C] - * options: None - * constraints: None - * required if: ui_calculations_only=0 - */ - SAM_EXPORT void SAM_Geothermal_GeoHourly_T_htf_hot_ref_nset(SAM_table ptr, double number, SAM_error *err); - /** * Set allow_reservoir_replacements: Allow reservoir replacements * options: None @@ -135,6 +145,14 @@ extern "C" */ SAM_EXPORT void SAM_Geothermal_GeoHourly_analysis_type_nset(SAM_table ptr, double number, SAM_error *err); + /** + * Set calc_drill_costs: Calculate drill costs [0/1] + * options: 0=LargerDiameter,1=SmallerDiameter + * constraints: None + * required if: ?=1 + */ + SAM_EXPORT void SAM_Geothermal_GeoHourly_calc_drill_costs_nset(SAM_table ptr, double number, SAM_error *err); + /** * Set conversion_subtype: Conversion Subtype * options: None @@ -144,7 +162,7 @@ extern "C" SAM_EXPORT void SAM_Geothermal_GeoHourly_conversion_subtype_nset(SAM_table ptr, double number, SAM_error *err); /** - * Set conversion_type: Conversion Type + * Set conversion_type: Conversion Type (0: binary; 1: flash) * options: None * constraints: INTEGER * required if: * @@ -155,12 +173,12 @@ extern "C" * Set dT_cw_ref: Design condenser cooling water inlet/outlet T diff [C] * options: None * constraints: None - * required if: ui_calculations_only=0 + * required if: sim_type=1 */ SAM_EXPORT void SAM_Geothermal_GeoHourly_dT_cw_ref_nset(SAM_table ptr, double number, SAM_error *err); /** - * Set decline_type: Temp decline Type + * Set decline_type: Temp decline Type (0: enter rate; 1 calc rate) * options: None * constraints: INTEGER * required if: * @@ -175,14 +193,6 @@ extern "C" */ SAM_EXPORT void SAM_Geothermal_GeoHourly_delta_pressure_equip_nset(SAM_table ptr, double number, SAM_error *err); - /** - * Set design_temp: Power block design temperature [C] - * options: None - * constraints: None - * required if: * - */ - SAM_EXPORT void SAM_Geothermal_GeoHourly_design_temp_nset(SAM_table ptr, double number, SAM_error *err); - /** * Set drilling_success_rate: Drilling success rate [%] * options: None @@ -203,7 +213,7 @@ extern "C" * Set eta_ref: Desgin conversion efficiency [%] * options: None * constraints: None - * required if: ui_calculations_only=0 + * required if: sim_type=1 */ SAM_EXPORT void SAM_Geothermal_GeoHourly_eta_ref_nset(SAM_table ptr, double number, SAM_error *err); @@ -215,14 +225,6 @@ extern "C" */ SAM_EXPORT void SAM_Geothermal_GeoHourly_excess_pressure_pump_nset(SAM_table ptr, double number, SAM_error *err); - /** - * Set exploration_wells_production: Exploration wells used for production - * options: None - * constraints: None - * required if: * - */ - SAM_EXPORT void SAM_Geothermal_GeoHourly_exploration_wells_production_nset(SAM_table ptr, double number, SAM_error *err); - /** * Set failed_prod_flow_ratio: Failed production well flow ratio * options: None @@ -235,7 +237,7 @@ extern "C" * Set file_name: local weather file path * options: None * constraints: LOCAL_FILE - * required if: ui_calculations_only=0 + * required if: sim_type=1 */ SAM_EXPORT void SAM_Geothermal_GeoHourly_file_name_sset(SAM_table ptr, const char* str, SAM_error *err); @@ -279,6 +281,134 @@ extern "C" */ SAM_EXPORT void SAM_Geothermal_GeoHourly_fracture_width_nset(SAM_table ptr, double number, SAM_error *err); + /** + * Set geotherm.cost.conf_multiplier: Confirmation cost multiplier + * options: None + * constraints: None + * required if: calc_drill_costs=1 + */ + SAM_EXPORT void SAM_Geothermal_GeoHourly_geotherm_cost_conf_multiplier_nset(SAM_table ptr, double number, SAM_error *err); + + /** + * Set geotherm.cost.conf_non_drill: Confirmation non drilling costs [$] + * options: None + * constraints: None + * required if: calc_drill_costs=1 + */ + SAM_EXPORT void SAM_Geothermal_GeoHourly_geotherm_cost_conf_non_drill_nset(SAM_table ptr, double number, SAM_error *err); + + /** + * Set geotherm.cost.conf_num_wells: Number of confirmation wells + * options: None + * constraints: None + * required if: * + */ + SAM_EXPORT void SAM_Geothermal_GeoHourly_geotherm_cost_conf_num_wells_nset(SAM_table ptr, double number, SAM_error *err); + + /** + * Set geotherm.cost.confirm_wells_percent: % of Confirmation Wells Used for Production + * options: None + * constraints: None + * required if: * + */ + SAM_EXPORT void SAM_Geothermal_GeoHourly_geotherm_cost_confirm_wells_percent_nset(SAM_table ptr, double number, SAM_error *err); + + /** + * Set geotherm.cost.contingency_percent: Contingency percent [%] + * options: None + * constraints: None + * required if: None + */ + SAM_EXPORT void SAM_Geothermal_GeoHourly_geotherm_cost_contingency_percent_nset(SAM_table ptr, double number, SAM_error *err); + + /** + * Set geotherm.cost.drilling.amount_specified: Absolute drilling cost input [$] + * options: None + * constraints: None + * required if: calc_drill_costs=1 + */ + SAM_EXPORT void SAM_Geothermal_GeoHourly_geotherm_cost_drilling_amount_specified_nset(SAM_table ptr, double number, SAM_error *err); + + /** + * Set geotherm.cost.drilling.calc: 0: user specified absolute drilling cost, 1: calculated [$] + * options: None + * constraints: None + * required if: calc_drill_costs=1 + */ + SAM_EXPORT void SAM_Geothermal_GeoHourly_geotherm_cost_drilling_calc_nset(SAM_table ptr, double number, SAM_error *err); + + /** + * Set geotherm.cost.epc.fixed: EPC fixed cost [$] + * options: None + * constraints: None + * required if: None + */ + SAM_EXPORT void SAM_Geothermal_GeoHourly_geotherm_cost_epc_fixed_nset(SAM_table ptr, double number, SAM_error *err); + + /** + * Set geotherm.cost.epc.percent: EPC percent [%] + * options: None + * constraints: None + * required if: None + */ + SAM_EXPORT void SAM_Geothermal_GeoHourly_geotherm_cost_epc_percent_nset(SAM_table ptr, double number, SAM_error *err); + + /** + * Set geotherm.cost.expl_lump_sum: Exploration cost lump sum + * options: None + * constraints: None + * required if: calc_drill_costs=1 + */ + SAM_EXPORT void SAM_Geothermal_GeoHourly_geotherm_cost_expl_lump_sum_nset(SAM_table ptr, double number, SAM_error *err); + + /** + * Set geotherm.cost.expl_multiplier: Exploration cost multiplier + * options: None + * constraints: None + * required if: calc_drill_costs=1 + */ + SAM_EXPORT void SAM_Geothermal_GeoHourly_geotherm_cost_expl_multiplier_nset(SAM_table ptr, double number, SAM_error *err); + + /** + * Set geotherm.cost.expl_non_drill: Exploration non drilling costs [$] + * options: None + * constraints: None + * required if: calc_drill_costs=1 + */ + SAM_EXPORT void SAM_Geothermal_GeoHourly_geotherm_cost_expl_non_drill_nset(SAM_table ptr, double number, SAM_error *err); + + /** + * Set geotherm.cost.expl_num_wells: Number of exploration wells + * options: None + * constraints: None + * required if: calc_drill_costs=1 + */ + SAM_EXPORT void SAM_Geothermal_GeoHourly_geotherm_cost_expl_num_wells_nset(SAM_table ptr, double number, SAM_error *err); + + /** + * Set geotherm.cost.indirect.amount_specified: Absolute indirect cost input [$] + * options: None + * constraints: None + * required if: None + */ + SAM_EXPORT void SAM_Geothermal_GeoHourly_geotherm_cost_indirect_amount_specified_nset(SAM_table ptr, double number, SAM_error *err); + + /** + * Set geotherm.cost.indirect.calc: 0: user specified absolute indirect cost, 1: calculated + * options: None + * constraints: None + * required if: None + */ + SAM_EXPORT void SAM_Geothermal_GeoHourly_geotherm_cost_indirect_calc_nset(SAM_table ptr, double number, SAM_error *err); + + /** + * Set geotherm.cost.inj_cost_curve: Injection well diameter type [0/1] + * options: 0=LargerDiameter,1=SmallerDiameter + * constraints: None + * required if: calc_drill_costs=1 + */ + SAM_EXPORT void SAM_Geothermal_GeoHourly_geotherm_cost_inj_cost_curve_nset(SAM_table ptr, double number, SAM_error *err); + /** * Set geotherm.cost.inj_cost_curve_welldiam: Injection well diameter type [0/1] * options: 0=LargerDiameter,1=SmallerDiameter @@ -303,6 +433,54 @@ extern "C" */ SAM_EXPORT void SAM_Geothermal_GeoHourly_geotherm_cost_inj_prod_well_ratio_nset(SAM_table ptr, double number, SAM_error *err); + /** + * Set geotherm.cost.plant_auto_estimate: 0: use user input cost; 1: use getem calcs [0/1] + * options: None + * constraints: None + * required if: None + */ + SAM_EXPORT void SAM_Geothermal_GeoHourly_geotherm_cost_plant_auto_estimate_nset(SAM_table ptr, double number, SAM_error *err); + + /** + * Set geotherm.cost.plant_per_kW_input: user input for relative plant cost [$/kWe] + * options: None + * constraints: None + * required if: None + */ + SAM_EXPORT void SAM_Geothermal_GeoHourly_geotherm_cost_plant_per_kW_input_nset(SAM_table ptr, double number, SAM_error *err); + + /** + * Set geotherm.cost.plant_total.calc: 0: user specificed absolute plant cost, 1: calculated + * options: None + * constraints: None + * required if: None + */ + SAM_EXPORT void SAM_Geothermal_GeoHourly_geotherm_cost_plant_total_calc_nset(SAM_table ptr, double number, SAM_error *err); + + /** + * Set geotherm.cost.plm.fixed: Project-land-misc fixed cost [$] + * options: None + * constraints: None + * required if: None + */ + SAM_EXPORT void SAM_Geothermal_GeoHourly_geotherm_cost_plm_fixed_nset(SAM_table ptr, double number, SAM_error *err); + + /** + * Set geotherm.cost.plm.percent: Project-land-misc percent [%] + * options: None + * constraints: None + * required if: None + */ + SAM_EXPORT void SAM_Geothermal_GeoHourly_geotherm_cost_plm_percent_nset(SAM_table ptr, double number, SAM_error *err); + + /** + * Set geotherm.cost.prod_cost_curve: Production well diameter type [0/1] + * options: 0=LargerDiameter,1=SmallerDiameter + * constraints: None + * required if: calc_drill_costs=1 + */ + SAM_EXPORT void SAM_Geothermal_GeoHourly_geotherm_cost_prod_cost_curve_nset(SAM_table ptr, double number, SAM_error *err); + /** * Set geotherm.cost.prod_cost_curve_welldiam: Production well diameter type [0/1] * options: 0=LargerDiameter,1=SmallerDiameter @@ -320,18 +498,90 @@ extern "C" SAM_EXPORT void SAM_Geothermal_GeoHourly_geotherm_cost_prod_cost_curve_welltype_nset(SAM_table ptr, double number, SAM_error *err); /** - * Set geothermal_analysis_period: Analysis Lifetime [years] + * Set geotherm.cost.prod_inj_non_drill: Non drilling cost for prod and inj well [$] + * options: 0=LargerDiameter,1=SmallerDiameter + * constraints: None + * required if: calc_drill_costs=1 + */ + SAM_EXPORT void SAM_Geothermal_GeoHourly_geotherm_cost_prod_inj_non_drill_nset(SAM_table ptr, double number, SAM_error *err); + + /** + * Set geotherm.cost.pump_casing_cost: Pump casing cost per foot [$/ft] * options: None - * constraints: INTEGER - * required if: * + * constraints: None + * required if: None + */ + SAM_EXPORT void SAM_Geothermal_GeoHourly_geotherm_cost_pump_casing_cost_nset(SAM_table ptr, double number, SAM_error *err); + + /** + * Set geotherm.cost.pump_fixed: Fixed pump workover and casing cost [$] + * options: None + * constraints: None + * required if: None + */ + SAM_EXPORT void SAM_Geothermal_GeoHourly_geotherm_cost_pump_fixed_nset(SAM_table ptr, double number, SAM_error *err); + + /** + * Set geotherm.cost.pump_per_foot: Pump cost per foot [$/ft] + * options: None + * constraints: None + * required if: None + */ + SAM_EXPORT void SAM_Geothermal_GeoHourly_geotherm_cost_pump_per_foot_nset(SAM_table ptr, double number, SAM_error *err); + + /** + * Set geotherm.cost.pumping.amount_specified: Absolute pump cost input [$] + * options: None + * constraints: None + * required if: None + */ + SAM_EXPORT void SAM_Geothermal_GeoHourly_geotherm_cost_pumping_amount_specified_nset(SAM_table ptr, double number, SAM_error *err); + + /** + * Set geotherm.cost.pumping.calc: 0: user specified absolute pump cost, 1: calculated + * options: None + * constraints: None + * required if: None + */ + SAM_EXPORT void SAM_Geothermal_GeoHourly_geotherm_cost_pumping_calc_nset(SAM_table ptr, double number, SAM_error *err); + + /** + * Set geotherm.cost.recap_specified: Absolute recap cost input [$] + * options: None + * constraints: None + * required if: None + */ + SAM_EXPORT void SAM_Geothermal_GeoHourly_geotherm_cost_recap_specified_nset(SAM_table ptr, double number, SAM_error *err); + + /** + * Set geotherm.cost.recap_use_calc: 0: user specified absolute recap cost, 1: calculated + * options: None + * constraints: None + * required if: None + */ + SAM_EXPORT void SAM_Geothermal_GeoHourly_geotherm_cost_recap_use_calc_nset(SAM_table ptr, double number, SAM_error *err); + + /** + * Set geotherm.cost.sales_tax.percent: Percent of direct cost to which sales tax is applied [%] + * options: None + * constraints: None + * required if: None + */ + SAM_EXPORT void SAM_Geothermal_GeoHourly_geotherm_cost_sales_tax_percent_nset(SAM_table ptr, double number, SAM_error *err); + + /** + * Set geotherm.cost.stim_non_drill: Stimulation non drilling costs [$] + * options: None + * constraints: None + * required if: calc_drill_costs=1 */ - SAM_EXPORT void SAM_Geothermal_GeoHourly_geothermal_analysis_period_nset(SAM_table ptr, double number, SAM_error *err); + SAM_EXPORT void SAM_Geothermal_GeoHourly_geotherm_cost_stim_non_drill_nset(SAM_table ptr, double number, SAM_error *err); /** * Set hc_ctl1: HC Control 1 * options: None * constraints: None - * required if: ui_calculations_only=0 + * required if: sim_type=1 */ SAM_EXPORT void SAM_Geothermal_GeoHourly_hc_ctl1_nset(SAM_table ptr, double number, SAM_error *err); @@ -339,7 +589,7 @@ extern "C" * Set hc_ctl2: HC Control 2 * options: None * constraints: None - * required if: ui_calculations_only=0 + * required if: sim_type=1 */ SAM_EXPORT void SAM_Geothermal_GeoHourly_hc_ctl2_nset(SAM_table ptr, double number, SAM_error *err); @@ -347,7 +597,7 @@ extern "C" * Set hc_ctl3: HC Control 3 * options: None * constraints: None - * required if: ui_calculations_only=0 + * required if: sim_type=1 */ SAM_EXPORT void SAM_Geothermal_GeoHourly_hc_ctl3_nset(SAM_table ptr, double number, SAM_error *err); @@ -355,7 +605,7 @@ extern "C" * Set hc_ctl4: HC Control 4 * options: None * constraints: None - * required if: ui_calculations_only=0 + * required if: sim_type=1 */ SAM_EXPORT void SAM_Geothermal_GeoHourly_hc_ctl4_nset(SAM_table ptr, double number, SAM_error *err); @@ -363,7 +613,7 @@ extern "C" * Set hc_ctl5: HC Control 5 * options: None * constraints: None - * required if: ui_calculations_only=0 + * required if: sim_type=1 */ SAM_EXPORT void SAM_Geothermal_GeoHourly_hc_ctl5_nset(SAM_table ptr, double number, SAM_error *err); @@ -371,7 +621,7 @@ extern "C" * Set hc_ctl6: HC Control 6 * options: None * constraints: None - * required if: ui_calculations_only=0 + * required if: sim_type=1 */ SAM_EXPORT void SAM_Geothermal_GeoHourly_hc_ctl6_nset(SAM_table ptr, double number, SAM_error *err); @@ -379,7 +629,7 @@ extern "C" * Set hc_ctl7: HC Control 7 * options: None * constraints: None - * required if: ui_calculations_only=0 + * required if: sim_type=1 */ SAM_EXPORT void SAM_Geothermal_GeoHourly_hc_ctl7_nset(SAM_table ptr, double number, SAM_error *err); @@ -387,7 +637,7 @@ extern "C" * Set hc_ctl8: HC Control 8 * options: None * constraints: None - * required if: ui_calculations_only=0 + * required if: sim_type=1 */ SAM_EXPORT void SAM_Geothermal_GeoHourly_hc_ctl8_nset(SAM_table ptr, double number, SAM_error *err); @@ -395,7 +645,7 @@ extern "C" * Set hc_ctl9: HC Control 9 * options: None * constraints: None - * required if: ui_calculations_only=0 + * required if: sim_type=1 */ SAM_EXPORT void SAM_Geothermal_GeoHourly_hc_ctl9_nset(SAM_table ptr, double number, SAM_error *err); @@ -403,7 +653,7 @@ extern "C" * Set hr_pl_nlev: # part-load increments [(0-9)] * options: None * constraints: INTEGER - * required if: ui_calculations_only=0 + * required if: sim_type=1 */ SAM_EXPORT void SAM_Geothermal_GeoHourly_hr_pl_nlev_nset(SAM_table ptr, double number, SAM_error *err); @@ -411,7 +661,7 @@ extern "C" * Set hybrid_dispatch_schedule: Daily dispatch schedule * options: None * constraints: TOUSCHED - * required if: ui_calculations_only=0 + * required if: sim_type=1 */ SAM_EXPORT void SAM_Geothermal_GeoHourly_hybrid_dispatch_schedule_sset(SAM_table ptr, const char* str, SAM_error *err); @@ -463,19 +713,11 @@ extern "C" */ SAM_EXPORT void SAM_Geothermal_GeoHourly_num_wells_nset(SAM_table ptr, double number, SAM_error *err); - /** - * Set num_wells_getem: Number of Wells GETEM calc'd - * options: None - * constraints: None - * required if: ui_calculations_only=0 - */ - SAM_EXPORT void SAM_Geothermal_GeoHourly_num_wells_getem_nset(SAM_table ptr, double number, SAM_error *err); - /** * Set pb_bd_frac: Blowdown steam fraction [%] * options: None * constraints: None - * required if: ui_calculations_only=0 + * required if: sim_type=1 */ SAM_EXPORT void SAM_Geothermal_GeoHourly_pb_bd_frac_nset(SAM_table ptr, double number, SAM_error *err); @@ -487,6 +729,14 @@ extern "C" */ SAM_EXPORT void SAM_Geothermal_GeoHourly_plant_efficiency_input_nset(SAM_table ptr, double number, SAM_error *err); + /** + * Set ppi_base_year: PPI Base Year + * options: None + * constraints: None + * required if: None + */ + SAM_EXPORT void SAM_Geothermal_GeoHourly_ppi_base_year_nset(SAM_table ptr, double number, SAM_error *err); + /** * Set prod_well_choice: Temperature loss in production well choice [0/1] * options: None @@ -507,7 +757,7 @@ extern "C" * Set q_sby_frac: % thermal power for standby mode [%] * options: None * constraints: None - * required if: ui_calculations_only=0 + * required if: sim_type=1 */ SAM_EXPORT void SAM_Geothermal_GeoHourly_q_sby_frac_nset(SAM_table ptr, double number, SAM_error *err); @@ -571,7 +821,7 @@ extern "C" * Set resource_potential: Resource Potential [MW] * options: None * constraints: None - * required if: ui_calculations_only=0 + * required if: sim_type=1 */ SAM_EXPORT void SAM_Geothermal_GeoHourly_resource_potential_nset(SAM_table ptr, double number, SAM_error *err); @@ -584,7 +834,7 @@ extern "C" SAM_EXPORT void SAM_Geothermal_GeoHourly_resource_temp_nset(SAM_table ptr, double number, SAM_error *err); /** - * Set resource_type: Type of Resource + * Set resource_type: Type of Resource (O = hydrothermal; 1 = EGS) * options: None * constraints: INTEGER * required if: * @@ -615,6 +865,14 @@ extern "C" */ SAM_EXPORT void SAM_Geothermal_GeoHourly_rock_thermal_conductivity_nset(SAM_table ptr, double number, SAM_error *err); + /** + * Set sales_tax_rate: Sales tax rate [%] + * options: None + * constraints: None + * required if: None + */ + SAM_EXPORT void SAM_Geothermal_GeoHourly_sales_tax_rate_nset(SAM_table ptr, double number, SAM_error *err); + /** * Set specified_pump_work_amount: Pump work specified by user [MW] * options: None @@ -643,7 +901,7 @@ extern "C" * Set startup_frac: % thermal power for startup [%] * options: None * constraints: None - * required if: ui_calculations_only=0 + * required if: sim_type=1 */ SAM_EXPORT void SAM_Geothermal_GeoHourly_startup_frac_nset(SAM_table ptr, double number, SAM_error *err); @@ -651,7 +909,7 @@ extern "C" * Set startup_time: Hours to start power block [hours] * options: None * constraints: None - * required if: ui_calculations_only=0 + * required if: sim_type=1 */ SAM_EXPORT void SAM_Geothermal_GeoHourly_startup_time_nset(SAM_table ptr, double number, SAM_error *err); @@ -679,14 +937,6 @@ extern "C" */ SAM_EXPORT void SAM_Geothermal_GeoHourly_subsurface_water_loss_nset(SAM_table ptr, double number, SAM_error *err); - /** - * Set system_use_lifetime_output: Geothermal lifetime simulation [0/1] - * options: 0=SingleYearRepeated,1=RunEveryYear - * constraints: BOOLEAN - * required if: ?=0 - */ - SAM_EXPORT void SAM_Geothermal_GeoHourly_system_use_lifetime_output_nset(SAM_table ptr, double number, SAM_error *err); - /** * Set temp_decline_max: Maximum temperature decline [C] * options: None @@ -703,14 +953,6 @@ extern "C" */ SAM_EXPORT void SAM_Geothermal_GeoHourly_temp_decline_rate_nset(SAM_table ptr, double number, SAM_error *err); - /** - * Set ui_calculations_only: If = 1, only run UI calculations - * options: None - * constraints: None - * required if: * - */ - SAM_EXPORT void SAM_Geothermal_GeoHourly_ui_calculations_only_nset(SAM_table ptr, double number, SAM_error *err); - /** * Set use_weather_file_conditions: Use weather file ambient temperature [0/1] * options: None @@ -781,13 +1023,216 @@ extern "C" SAM_EXPORT void SAM_Geothermal_AdjustmentFactors_adjust_timeindex_aset(SAM_table ptr, double* arr, int length, SAM_error *err); + // + // FinancialParameters parameters + // + /** - * GeoHourly Getters + * Set analysis_period: Analyis period [years] + * options: None + * constraints: INTEGER,MIN=0,MAX=100 + * required if: None */ + SAM_EXPORT void SAM_Geothermal_FinancialParameters_analysis_period_nset(SAM_table ptr, double number, SAM_error *err); - SAM_EXPORT double SAM_Geothermal_GeoHourly_CT_nget(SAM_table ptr, SAM_error *err); - - SAM_EXPORT double SAM_Geothermal_GeoHourly_HTF_nget(SAM_table ptr, SAM_error *err); + + // + // Costs parameters + // + + /** + * Set geotherm.cost.plant_total.amount_specified: Absolute plant cost input [$] + * options: GeoHourly + * constraints: None + * required if: None + */ + SAM_EXPORT void SAM_Geothermal_Costs_geotherm_cost_plant_total_amount_specified_nset(SAM_table ptr, double number, SAM_error *err); + + + // + // FinancialParameters parameters + // + + /** + * Set const_per_interest_rate1: Interest rate, loan 1 [%] + * options: None + * constraints: None + * required if: None + */ + SAM_EXPORT void SAM_Geothermal_FinancialParameters_const_per_interest_rate1_nset(SAM_table ptr, double number, SAM_error *err); + + /** + * Set const_per_interest_rate2: Interest rate, loan 2 [%] + * options: None + * constraints: None + * required if: None + */ + SAM_EXPORT void SAM_Geothermal_FinancialParameters_const_per_interest_rate2_nset(SAM_table ptr, double number, SAM_error *err); + + /** + * Set const_per_interest_rate3: Interest rate, loan 3 [%] + * options: None + * constraints: None + * required if: None + */ + SAM_EXPORT void SAM_Geothermal_FinancialParameters_const_per_interest_rate3_nset(SAM_table ptr, double number, SAM_error *err); + + /** + * Set const_per_interest_rate4: Interest rate, loan 4 [%] + * options: None + * constraints: None + * required if: None + */ + SAM_EXPORT void SAM_Geothermal_FinancialParameters_const_per_interest_rate4_nset(SAM_table ptr, double number, SAM_error *err); + + /** + * Set const_per_interest_rate5: Interest rate, loan 5 [%] + * options: None + * constraints: None + * required if: None + */ + SAM_EXPORT void SAM_Geothermal_FinancialParameters_const_per_interest_rate5_nset(SAM_table ptr, double number, SAM_error *err); + + /** + * Set const_per_months1: Months prior to operation, loan 1 + * options: None + * constraints: None + * required if: None + */ + SAM_EXPORT void SAM_Geothermal_FinancialParameters_const_per_months1_nset(SAM_table ptr, double number, SAM_error *err); + + /** + * Set const_per_months2: Months prior to operation, loan 2 + * options: None + * constraints: None + * required if: None + */ + SAM_EXPORT void SAM_Geothermal_FinancialParameters_const_per_months2_nset(SAM_table ptr, double number, SAM_error *err); + + /** + * Set const_per_months3: Months prior to operation, loan 3 + * options: None + * constraints: None + * required if: None + */ + SAM_EXPORT void SAM_Geothermal_FinancialParameters_const_per_months3_nset(SAM_table ptr, double number, SAM_error *err); + + /** + * Set const_per_months4: Months prior to operation, loan 4 + * options: None + * constraints: None + * required if: None + */ + SAM_EXPORT void SAM_Geothermal_FinancialParameters_const_per_months4_nset(SAM_table ptr, double number, SAM_error *err); + + /** + * Set const_per_months5: Months prior to operation, loan 5 + * options: None + * constraints: None + * required if: None + */ + SAM_EXPORT void SAM_Geothermal_FinancialParameters_const_per_months5_nset(SAM_table ptr, double number, SAM_error *err); + + /** + * Set const_per_percent1: Percent of tot. installed cost, loan 1 [%] + * options: None + * constraints: None + * required if: None + */ + SAM_EXPORT void SAM_Geothermal_FinancialParameters_const_per_percent1_nset(SAM_table ptr, double number, SAM_error *err); + + /** + * Set const_per_percent2: Percent of tot. installed cost, loan 2 [%] + * options: None + * constraints: None + * required if: None + */ + SAM_EXPORT void SAM_Geothermal_FinancialParameters_const_per_percent2_nset(SAM_table ptr, double number, SAM_error *err); + + /** + * Set const_per_percent3: Percent of tot. installed cost, loan 3 [%] + * options: None + * constraints: None + * required if: None + */ + SAM_EXPORT void SAM_Geothermal_FinancialParameters_const_per_percent3_nset(SAM_table ptr, double number, SAM_error *err); + + /** + * Set const_per_percent4: Percent of tot. installed cost, loan 4 [%] + * options: None + * constraints: None + * required if: None + */ + SAM_EXPORT void SAM_Geothermal_FinancialParameters_const_per_percent4_nset(SAM_table ptr, double number, SAM_error *err); + + /** + * Set const_per_percent5: Percent of tot. installed cost, loan 5 [%] + * options: None + * constraints: None + * required if: None + */ + SAM_EXPORT void SAM_Geothermal_FinancialParameters_const_per_percent5_nset(SAM_table ptr, double number, SAM_error *err); + + /** + * Set const_per_upfront_rate1: Upfront fee on principal, loan 1 [%] + * options: None + * constraints: None + * required if: None + */ + SAM_EXPORT void SAM_Geothermal_FinancialParameters_const_per_upfront_rate1_nset(SAM_table ptr, double number, SAM_error *err); + + /** + * Set const_per_upfront_rate2: Upfront fee on principal, loan 2 [%] + * options: None + * constraints: None + * required if: None + */ + SAM_EXPORT void SAM_Geothermal_FinancialParameters_const_per_upfront_rate2_nset(SAM_table ptr, double number, SAM_error *err); + + /** + * Set const_per_upfront_rate3: Upfront fee on principal, loan 3 [%] + * options: None + * constraints: None + * required if: None + */ + SAM_EXPORT void SAM_Geothermal_FinancialParameters_const_per_upfront_rate3_nset(SAM_table ptr, double number, SAM_error *err); + + /** + * Set const_per_upfront_rate4: Upfront fee on principal, loan 4 [%] + * options: None + * constraints: None + * required if: None + */ + SAM_EXPORT void SAM_Geothermal_FinancialParameters_const_per_upfront_rate4_nset(SAM_table ptr, double number, SAM_error *err); + + /** + * Set const_per_upfront_rate5: Upfront fee on principal, loan 5 [%] + * options: None + * constraints: None + * required if: None + */ + SAM_EXPORT void SAM_Geothermal_FinancialParameters_const_per_upfront_rate5_nset(SAM_table ptr, double number, SAM_error *err); + + + /** + * SystemControl Getters + */ + + SAM_EXPORT double SAM_Geothermal_SystemControl_sim_type_nget(SAM_table ptr, SAM_error *err); + + + /** + * FinancialModel Getters + */ + + SAM_EXPORT double SAM_Geothermal_FinancialModel_geo_financial_model_nget(SAM_table ptr, SAM_error *err); + + + /** + * GeoHourly Getters + */ + + SAM_EXPORT double SAM_Geothermal_GeoHourly_CT_nget(SAM_table ptr, SAM_error *err); SAM_EXPORT double SAM_Geothermal_GeoHourly_P_boil_nget(SAM_table ptr, SAM_error *err); @@ -803,14 +1248,14 @@ extern "C" SAM_EXPORT double SAM_Geothermal_GeoHourly_T_htf_cold_ref_nget(SAM_table ptr, SAM_error *err); - SAM_EXPORT double SAM_Geothermal_GeoHourly_T_htf_hot_ref_nget(SAM_table ptr, SAM_error *err); - SAM_EXPORT double SAM_Geothermal_GeoHourly_allow_reservoir_replacements_nget(SAM_table ptr, SAM_error *err); SAM_EXPORT double SAM_Geothermal_GeoHourly_ambient_pressure_nget(SAM_table ptr, SAM_error *err); SAM_EXPORT double SAM_Geothermal_GeoHourly_analysis_type_nget(SAM_table ptr, SAM_error *err); + SAM_EXPORT double SAM_Geothermal_GeoHourly_calc_drill_costs_nget(SAM_table ptr, SAM_error *err); + SAM_EXPORT double SAM_Geothermal_GeoHourly_conversion_subtype_nget(SAM_table ptr, SAM_error *err); SAM_EXPORT double SAM_Geothermal_GeoHourly_conversion_type_nget(SAM_table ptr, SAM_error *err); @@ -821,8 +1266,6 @@ extern "C" SAM_EXPORT double SAM_Geothermal_GeoHourly_delta_pressure_equip_nget(SAM_table ptr, SAM_error *err); - SAM_EXPORT double SAM_Geothermal_GeoHourly_design_temp_nget(SAM_table ptr, SAM_error *err); - SAM_EXPORT double SAM_Geothermal_GeoHourly_drilling_success_rate_nget(SAM_table ptr, SAM_error *err); SAM_EXPORT double SAM_Geothermal_GeoHourly_dt_prod_well_nget(SAM_table ptr, SAM_error *err); @@ -831,8 +1274,6 @@ extern "C" SAM_EXPORT double SAM_Geothermal_GeoHourly_excess_pressure_pump_nget(SAM_table ptr, SAM_error *err); - SAM_EXPORT double SAM_Geothermal_GeoHourly_exploration_wells_production_nget(SAM_table ptr, SAM_error *err); - SAM_EXPORT double SAM_Geothermal_GeoHourly_failed_prod_flow_ratio_nget(SAM_table ptr, SAM_error *err); SAM_EXPORT const char* SAM_Geothermal_GeoHourly_file_name_sget(SAM_table ptr, SAM_error *err); @@ -847,17 +1288,79 @@ extern "C" SAM_EXPORT double SAM_Geothermal_GeoHourly_fracture_width_nget(SAM_table ptr, SAM_error *err); + SAM_EXPORT double SAM_Geothermal_GeoHourly_geotherm_cost_conf_multiplier_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_Geothermal_GeoHourly_geotherm_cost_conf_non_drill_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_Geothermal_GeoHourly_geotherm_cost_conf_num_wells_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_Geothermal_GeoHourly_geotherm_cost_confirm_wells_percent_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_Geothermal_GeoHourly_geotherm_cost_contingency_percent_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_Geothermal_GeoHourly_geotherm_cost_drilling_amount_specified_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_Geothermal_GeoHourly_geotherm_cost_drilling_calc_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_Geothermal_GeoHourly_geotherm_cost_epc_fixed_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_Geothermal_GeoHourly_geotherm_cost_epc_percent_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_Geothermal_GeoHourly_geotherm_cost_expl_lump_sum_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_Geothermal_GeoHourly_geotherm_cost_expl_multiplier_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_Geothermal_GeoHourly_geotherm_cost_expl_non_drill_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_Geothermal_GeoHourly_geotherm_cost_expl_num_wells_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_Geothermal_GeoHourly_geotherm_cost_indirect_amount_specified_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_Geothermal_GeoHourly_geotherm_cost_indirect_calc_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_Geothermal_GeoHourly_geotherm_cost_inj_cost_curve_nget(SAM_table ptr, SAM_error *err); + SAM_EXPORT double SAM_Geothermal_GeoHourly_geotherm_cost_inj_cost_curve_welldiam_nget(SAM_table ptr, SAM_error *err); SAM_EXPORT double SAM_Geothermal_GeoHourly_geotherm_cost_inj_cost_curve_welltype_nget(SAM_table ptr, SAM_error *err); SAM_EXPORT double SAM_Geothermal_GeoHourly_geotherm_cost_inj_prod_well_ratio_nget(SAM_table ptr, SAM_error *err); + SAM_EXPORT double SAM_Geothermal_GeoHourly_geotherm_cost_plant_auto_estimate_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_Geothermal_GeoHourly_geotherm_cost_plant_per_kW_input_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_Geothermal_GeoHourly_geotherm_cost_plant_total_calc_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_Geothermal_GeoHourly_geotherm_cost_plm_fixed_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_Geothermal_GeoHourly_geotherm_cost_plm_percent_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_Geothermal_GeoHourly_geotherm_cost_prod_cost_curve_nget(SAM_table ptr, SAM_error *err); + SAM_EXPORT double SAM_Geothermal_GeoHourly_geotherm_cost_prod_cost_curve_welldiam_nget(SAM_table ptr, SAM_error *err); SAM_EXPORT double SAM_Geothermal_GeoHourly_geotherm_cost_prod_cost_curve_welltype_nget(SAM_table ptr, SAM_error *err); - SAM_EXPORT double SAM_Geothermal_GeoHourly_geothermal_analysis_period_nget(SAM_table ptr, SAM_error *err); + SAM_EXPORT double SAM_Geothermal_GeoHourly_geotherm_cost_prod_inj_non_drill_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_Geothermal_GeoHourly_geotherm_cost_pump_casing_cost_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_Geothermal_GeoHourly_geotherm_cost_pump_fixed_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_Geothermal_GeoHourly_geotherm_cost_pump_per_foot_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_Geothermal_GeoHourly_geotherm_cost_pumping_amount_specified_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_Geothermal_GeoHourly_geotherm_cost_pumping_calc_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_Geothermal_GeoHourly_geotherm_cost_recap_specified_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_Geothermal_GeoHourly_geotherm_cost_recap_use_calc_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_Geothermal_GeoHourly_geotherm_cost_sales_tax_percent_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_Geothermal_GeoHourly_geotherm_cost_stim_non_drill_nget(SAM_table ptr, SAM_error *err); SAM_EXPORT double SAM_Geothermal_GeoHourly_hc_ctl1_nget(SAM_table ptr, SAM_error *err); @@ -893,12 +1396,12 @@ extern "C" SAM_EXPORT double SAM_Geothermal_GeoHourly_num_wells_nget(SAM_table ptr, SAM_error *err); - SAM_EXPORT double SAM_Geothermal_GeoHourly_num_wells_getem_nget(SAM_table ptr, SAM_error *err); - SAM_EXPORT double SAM_Geothermal_GeoHourly_pb_bd_frac_nget(SAM_table ptr, SAM_error *err); SAM_EXPORT double SAM_Geothermal_GeoHourly_plant_efficiency_input_nget(SAM_table ptr, SAM_error *err); + SAM_EXPORT double SAM_Geothermal_GeoHourly_ppi_base_year_nget(SAM_table ptr, SAM_error *err); + SAM_EXPORT double SAM_Geothermal_GeoHourly_prod_well_choice_nget(SAM_table ptr, SAM_error *err); SAM_EXPORT double SAM_Geothermal_GeoHourly_pump_efficiency_nget(SAM_table ptr, SAM_error *err); @@ -931,6 +1434,8 @@ extern "C" SAM_EXPORT double SAM_Geothermal_GeoHourly_rock_thermal_conductivity_nget(SAM_table ptr, SAM_error *err); + SAM_EXPORT double SAM_Geothermal_GeoHourly_sales_tax_rate_nget(SAM_table ptr, SAM_error *err); + SAM_EXPORT double SAM_Geothermal_GeoHourly_specified_pump_work_amount_nget(SAM_table ptr, SAM_error *err); SAM_EXPORT double SAM_Geothermal_GeoHourly_specify_pump_work_nget(SAM_table ptr, SAM_error *err); @@ -947,14 +1452,10 @@ extern "C" SAM_EXPORT double SAM_Geothermal_GeoHourly_subsurface_water_loss_nget(SAM_table ptr, SAM_error *err); - SAM_EXPORT double SAM_Geothermal_GeoHourly_system_use_lifetime_output_nget(SAM_table ptr, SAM_error *err); - SAM_EXPORT double SAM_Geothermal_GeoHourly_temp_decline_max_nget(SAM_table ptr, SAM_error *err); SAM_EXPORT double SAM_Geothermal_GeoHourly_temp_decline_rate_nget(SAM_table ptr, SAM_error *err); - SAM_EXPORT double SAM_Geothermal_GeoHourly_ui_calculations_only_nget(SAM_table ptr, SAM_error *err); - SAM_EXPORT double SAM_Geothermal_GeoHourly_use_weather_file_conditions_nget(SAM_table ptr, SAM_error *err); SAM_EXPORT double SAM_Geothermal_GeoHourly_well_flow_rate_nget(SAM_table ptr, SAM_error *err); @@ -977,6 +1478,65 @@ extern "C" SAM_EXPORT double* SAM_Geothermal_AdjustmentFactors_adjust_timeindex_aget(SAM_table ptr, int* length, SAM_error *err); + /** + * FinancialParameters Getters + */ + + SAM_EXPORT double SAM_Geothermal_FinancialParameters_analysis_period_nget(SAM_table ptr, SAM_error *err); + + + /** + * Costs Getters + */ + + SAM_EXPORT double SAM_Geothermal_Costs_geotherm_cost_plant_total_amount_specified_nget(SAM_table ptr, SAM_error *err); + + + /** + * FinancialParameters Getters + */ + + SAM_EXPORT double SAM_Geothermal_FinancialParameters_const_per_interest_rate1_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_Geothermal_FinancialParameters_const_per_interest_rate2_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_Geothermal_FinancialParameters_const_per_interest_rate3_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_Geothermal_FinancialParameters_const_per_interest_rate4_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_Geothermal_FinancialParameters_const_per_interest_rate5_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_Geothermal_FinancialParameters_const_per_months1_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_Geothermal_FinancialParameters_const_per_months2_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_Geothermal_FinancialParameters_const_per_months3_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_Geothermal_FinancialParameters_const_per_months4_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_Geothermal_FinancialParameters_const_per_months5_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_Geothermal_FinancialParameters_const_per_percent1_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_Geothermal_FinancialParameters_const_per_percent2_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_Geothermal_FinancialParameters_const_per_percent3_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_Geothermal_FinancialParameters_const_per_percent4_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_Geothermal_FinancialParameters_const_per_percent5_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_Geothermal_FinancialParameters_const_per_upfront_rate1_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_Geothermal_FinancialParameters_const_per_upfront_rate2_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_Geothermal_FinancialParameters_const_per_upfront_rate3_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_Geothermal_FinancialParameters_const_per_upfront_rate4_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_Geothermal_FinancialParameters_const_per_upfront_rate5_nget(SAM_table ptr, SAM_error *err); + + /** * Outputs Getters */ @@ -987,6 +1547,14 @@ extern "C" SAM_EXPORT double* SAM_Geothermal_Outputs_annual_energy_distribution_time_mget(SAM_table ptr, int* nrows, int* ncols, SAM_error *err); + SAM_EXPORT double SAM_Geothermal_Outputs_atb_drilling_cost_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_Geothermal_Outputs_atb_exploration_cost_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_Geothermal_Outputs_atb_plant_cost_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_Geothermal_Outputs_baseline_cost_nget(SAM_table ptr, SAM_error *err); + SAM_EXPORT double SAM_Geothermal_Outputs_bottom_hole_pressure_nget(SAM_table ptr, SAM_error *err); SAM_EXPORT double SAM_Geothermal_Outputs_brine_effectiveness_nget(SAM_table ptr, SAM_error *err); @@ -995,30 +1563,112 @@ extern "C" SAM_EXPORT double SAM_Geothermal_Outputs_condensate_pump_power_nget(SAM_table ptr, SAM_error *err); + SAM_EXPORT double SAM_Geothermal_Outputs_conf_drilling_cost_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_Geothermal_Outputs_conf_total_cost_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_Geothermal_Outputs_const_per_interest1_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_Geothermal_Outputs_const_per_interest2_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_Geothermal_Outputs_const_per_interest3_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_Geothermal_Outputs_const_per_interest4_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_Geothermal_Outputs_const_per_interest5_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_Geothermal_Outputs_const_per_interest_total_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_Geothermal_Outputs_const_per_percent_total_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_Geothermal_Outputs_const_per_principal1_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_Geothermal_Outputs_const_per_principal2_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_Geothermal_Outputs_const_per_principal3_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_Geothermal_Outputs_const_per_principal4_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_Geothermal_Outputs_const_per_principal5_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_Geothermal_Outputs_const_per_principal_total_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_Geothermal_Outputs_const_per_total1_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_Geothermal_Outputs_const_per_total2_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_Geothermal_Outputs_const_per_total3_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_Geothermal_Outputs_const_per_total4_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_Geothermal_Outputs_const_per_total5_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_Geothermal_Outputs_construction_financing_cost_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_Geothermal_Outputs_contingency_cost_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_Geothermal_Outputs_cp_battery_nameplate_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_Geothermal_Outputs_cp_system_nameplate_nget(SAM_table ptr, SAM_error *err); + SAM_EXPORT double SAM_Geothermal_Outputs_cw_pump_head_nget(SAM_table ptr, SAM_error *err); SAM_EXPORT double SAM_Geothermal_Outputs_cw_pump_work_nget(SAM_table ptr, SAM_error *err); SAM_EXPORT double SAM_Geothermal_Outputs_cwflow_nget(SAM_table ptr, SAM_error *err); + SAM_EXPORT double* SAM_Geothermal_Outputs_degradation_aget(SAM_table ptr, int* length, SAM_error *err); + + SAM_EXPORT double SAM_Geothermal_Outputs_design_temp_nget(SAM_table ptr, SAM_error *err); + SAM_EXPORT double SAM_Geothermal_Outputs_dt_rock_well_head_nget(SAM_table ptr, SAM_error *err); SAM_EXPORT double SAM_Geothermal_Outputs_eff_secondlaw_nget(SAM_table ptr, SAM_error *err); + SAM_EXPORT double SAM_Geothermal_Outputs_engineering_cost_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_Geothermal_Outputs_epc_total_cost_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_Geothermal_Outputs_expl_drilling_cost_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_Geothermal_Outputs_expl_per_well_cost_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_Geothermal_Outputs_expl_total_cost_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_Geothermal_Outputs_field_gathering_num_wells_nget(SAM_table ptr, SAM_error *err); + SAM_EXPORT double SAM_Geothermal_Outputs_first_year_output_nget(SAM_table ptr, SAM_error *err); SAM_EXPORT double SAM_Geothermal_Outputs_flash_count_nget(SAM_table ptr, SAM_error *err); SAM_EXPORT double* SAM_Geothermal_Outputs_gen_aget(SAM_table ptr, int* length, SAM_error *err); + SAM_EXPORT double SAM_Geothermal_Outputs_geothermal_analysis_period_nget(SAM_table ptr, SAM_error *err); + SAM_EXPORT double SAM_Geothermal_Outputs_gross_cost_output_nget(SAM_table ptr, SAM_error *err); SAM_EXPORT double SAM_Geothermal_Outputs_gross_output_nget(SAM_table ptr, SAM_error *err); SAM_EXPORT double SAM_Geothermal_Outputs_hp_flash_pressure_nget(SAM_table ptr, SAM_error *err); + SAM_EXPORT double SAM_Geothermal_Outputs_indirect_cost_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_Geothermal_Outputs_indirect_pump_gathering_cost_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_Geothermal_Outputs_inj_num_pumps_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_Geothermal_Outputs_inj_pump_cost_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_Geothermal_Outputs_inj_pump_cost_per_pump_nget(SAM_table ptr, SAM_error *err); + SAM_EXPORT double SAM_Geothermal_Outputs_inj_pump_hp_nget(SAM_table ptr, SAM_error *err); + SAM_EXPORT double SAM_Geothermal_Outputs_inj_total_cost_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_Geothermal_Outputs_inj_well_cost_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_Geothermal_Outputs_installed_cost_per_kW_nget(SAM_table ptr, SAM_error *err); + SAM_EXPORT double SAM_Geothermal_Outputs_kwh_per_kw_nget(SAM_table ptr, SAM_error *err); SAM_EXPORT double SAM_Geothermal_Outputs_lifetime_output_nget(SAM_table ptr, SAM_error *err); @@ -1037,6 +1687,12 @@ extern "C" SAM_EXPORT double SAM_Geothermal_Outputs_ncg_condensate_pump_nget(SAM_table ptr, SAM_error *err); + SAM_EXPORT double SAM_Geothermal_Outputs_net_plant_output_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_Geothermal_Outputs_num_confirm_wells_to_production_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_Geothermal_Outputs_num_wells_getem_nget(SAM_table ptr, SAM_error *err); + SAM_EXPORT double SAM_Geothermal_Outputs_num_wells_getem_inj_nget(SAM_table ptr, SAM_error *err); SAM_EXPORT double SAM_Geothermal_Outputs_num_wells_getem_inj_drilled_nget(SAM_table ptr, SAM_error *err); @@ -1047,18 +1703,38 @@ extern "C" SAM_EXPORT double SAM_Geothermal_Outputs_num_wells_getem_prod_failed_nget(SAM_table ptr, SAM_error *err); + SAM_EXPORT double SAM_Geothermal_Outputs_piping_cost_per_well_nget(SAM_table ptr, SAM_error *err); + SAM_EXPORT double SAM_Geothermal_Outputs_plant_brine_eff_nget(SAM_table ptr, SAM_error *err); + SAM_EXPORT double SAM_Geothermal_Outputs_plm_total_cost_nget(SAM_table ptr, SAM_error *err); + SAM_EXPORT double SAM_Geothermal_Outputs_pressure_ratio_1_nget(SAM_table ptr, SAM_error *err); SAM_EXPORT double SAM_Geothermal_Outputs_pressure_ratio_2_nget(SAM_table ptr, SAM_error *err); SAM_EXPORT double SAM_Geothermal_Outputs_pressure_ratio_3_nget(SAM_table ptr, SAM_error *err); + SAM_EXPORT double SAM_Geothermal_Outputs_prod_inj_total_cost_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_Geothermal_Outputs_prod_pump_cost_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_Geothermal_Outputs_prod_pump_cost_per_well_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_Geothermal_Outputs_prod_total_cost_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_Geothermal_Outputs_prod_well_cost_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_Geothermal_Outputs_pump_cost_install_nget(SAM_table ptr, SAM_error *err); + SAM_EXPORT double SAM_Geothermal_Outputs_pump_depth_ft_nget(SAM_table ptr, SAM_error *err); SAM_EXPORT double SAM_Geothermal_Outputs_pump_hp_nget(SAM_table ptr, SAM_error *err); + SAM_EXPORT double SAM_Geothermal_Outputs_pump_only_cost_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_Geothermal_Outputs_pump_size_hp_nget(SAM_table ptr, SAM_error *err); + SAM_EXPORT double SAM_Geothermal_Outputs_pump_watthr_per_lb_nget(SAM_table ptr, SAM_error *err); SAM_EXPORT double SAM_Geothermal_Outputs_pump_work_nget(SAM_table ptr, SAM_error *err); @@ -1081,12 +1757,30 @@ extern "C" SAM_EXPORT double SAM_Geothermal_Outputs_reservoir_pressure_nget(SAM_table ptr, SAM_error *err); + SAM_EXPORT double SAM_Geothermal_Outputs_sales_tax_cost_nget(SAM_table ptr, SAM_error *err); + SAM_EXPORT double SAM_Geothermal_Outputs_spec_vol_nget(SAM_table ptr, SAM_error *err); SAM_EXPORT double SAM_Geothermal_Outputs_spec_vol_lp_nget(SAM_table ptr, SAM_error *err); + SAM_EXPORT double SAM_Geothermal_Outputs_stim_cost_non_drill_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_Geothermal_Outputs_stim_cost_per_well_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_Geothermal_Outputs_stim_total_cost_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_Geothermal_Outputs_sum_prod_inj_total_cost_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_Geothermal_Outputs_system_capacity_nget(SAM_table ptr, SAM_error *err); + SAM_EXPORT double* SAM_Geothermal_Outputs_system_lifetime_recapitalize_aget(SAM_table ptr, int* length, SAM_error *err); + SAM_EXPORT double SAM_Geothermal_Outputs_system_recapitalization_cost_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_Geothermal_Outputs_system_use_lifetime_output_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_Geothermal_Outputs_system_use_recapitalization_nget(SAM_table ptr, SAM_error *err); + SAM_EXPORT double* SAM_Geothermal_Outputs_timestep_dry_bulb_aget(SAM_table ptr, int* length, SAM_error *err); SAM_EXPORT double* SAM_Geothermal_Outputs_timestep_pressure_aget(SAM_table ptr, int* length, SAM_error *err); @@ -1097,6 +1791,36 @@ extern "C" SAM_EXPORT double* SAM_Geothermal_Outputs_timestep_wet_bulb_aget(SAM_table ptr, int* length, SAM_error *err); + SAM_EXPORT double SAM_Geothermal_Outputs_total_capital_cost_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_Geothermal_Outputs_total_direct_cost_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_Geothermal_Outputs_total_drilling_cost_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_Geothermal_Outputs_total_drilling_cost_used_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_Geothermal_Outputs_total_drilling_permitting_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_Geothermal_Outputs_total_expl_permitting_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_Geothermal_Outputs_total_gathering_cost_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_Geothermal_Outputs_total_getem_om_cost_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_Geothermal_Outputs_total_installed_cost_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_Geothermal_Outputs_total_plant_cost_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_Geothermal_Outputs_total_plant_cost_used_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_Geothermal_Outputs_total_pump_cost_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_Geothermal_Outputs_total_pump_gathering_cost_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_Geothermal_Outputs_total_pump_gathering_cost_used_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_Geothermal_Outputs_total_surface_equipment_cost_nget(SAM_table ptr, SAM_error *err); + SAM_EXPORT double SAM_Geothermal_Outputs_v_stage_1_nget(SAM_table ptr, SAM_error *err); SAM_EXPORT double SAM_Geothermal_Outputs_v_stage_2_nget(SAM_table ptr, SAM_error *err); diff --git a/api/include/SAM_GeothermalCosts.h b/api/include/SAM_GeothermalCosts.h index 49f4a8e21c..87c71a3615 100644 --- a/api/include/SAM_GeothermalCosts.h +++ b/api/include/SAM_GeothermalCosts.h @@ -43,7 +43,7 @@ extern "C" * Set calc_drill_costs: Calculate drill costs [0/1] * options: 0=LargerDiameter,1=SmallerDiameter * constraints: None - * required if: ?=0 + * required if: ?=1 */ SAM_EXPORT void SAM_GeothermalCosts_GeoHourly_calc_drill_costs_nset(SAM_table ptr, double number, SAM_error *err); @@ -143,6 +143,46 @@ extern "C" */ SAM_EXPORT void SAM_GeothermalCosts_GeoHourly_geotherm_cost_conf_num_wells_nset(SAM_table ptr, double number, SAM_error *err); + /** + * Set geotherm.cost.contingency_percent: Contingency percent [%] + * options: None + * constraints: None + * required if: None + */ + SAM_EXPORT void SAM_GeothermalCosts_GeoHourly_geotherm_cost_contingency_percent_nset(SAM_table ptr, double number, SAM_error *err); + + /** + * Set geotherm.cost.drilling.amount_specified: Absolute drilling cost input [$] + * options: None + * constraints: None + * required if: calc_drill_costs=1 + */ + SAM_EXPORT void SAM_GeothermalCosts_GeoHourly_geotherm_cost_drilling_amount_specified_nset(SAM_table ptr, double number, SAM_error *err); + + /** + * Set geotherm.cost.drilling.calc: 0: user specified absolute drilling cost, 1: calculated [$] + * options: None + * constraints: None + * required if: calc_drill_costs=1 + */ + SAM_EXPORT void SAM_GeothermalCosts_GeoHourly_geotherm_cost_drilling_calc_nset(SAM_table ptr, double number, SAM_error *err); + + /** + * Set geotherm.cost.epc.fixed: EPC fixed cost [$] + * options: None + * constraints: None + * required if: None + */ + SAM_EXPORT void SAM_GeothermalCosts_GeoHourly_geotherm_cost_epc_fixed_nset(SAM_table ptr, double number, SAM_error *err); + + /** + * Set geotherm.cost.epc.percent: EPC percent [%] + * options: None + * constraints: None + * required if: None + */ + SAM_EXPORT void SAM_GeothermalCosts_GeoHourly_geotherm_cost_epc_percent_nset(SAM_table ptr, double number, SAM_error *err); + /** * Set geotherm.cost.expl_lump_sum: Exploration cost lump sum * options: None @@ -175,6 +215,22 @@ extern "C" */ SAM_EXPORT void SAM_GeothermalCosts_GeoHourly_geotherm_cost_expl_num_wells_nset(SAM_table ptr, double number, SAM_error *err); + /** + * Set geotherm.cost.indirect.amount_specified: Absolute indirect cost input [$] + * options: None + * constraints: None + * required if: None + */ + SAM_EXPORT void SAM_GeothermalCosts_GeoHourly_geotherm_cost_indirect_amount_specified_nset(SAM_table ptr, double number, SAM_error *err); + + /** + * Set geotherm.cost.indirect.calc: 0: user specified absolute indirect cost, 1: calculated + * options: None + * constraints: None + * required if: None + */ + SAM_EXPORT void SAM_GeothermalCosts_GeoHourly_geotherm_cost_indirect_calc_nset(SAM_table ptr, double number, SAM_error *err); + /** * Set geotherm.cost.inj_cost_curve: Injection well diameter type [0/1] * options: 0=LargerDiameter,1=SmallerDiameter @@ -199,6 +255,46 @@ extern "C" */ SAM_EXPORT void SAM_GeothermalCosts_GeoHourly_geotherm_cost_inj_cost_curve_welltype_nset(SAM_table ptr, double number, SAM_error *err); + /** + * Set geotherm.cost.plant_auto_estimate: 0: use user input cost; 1: use getem calcs [0/1] + * options: None + * constraints: None + * required if: None + */ + SAM_EXPORT void SAM_GeothermalCosts_GeoHourly_geotherm_cost_plant_auto_estimate_nset(SAM_table ptr, double number, SAM_error *err); + + /** + * Set geotherm.cost.plant_per_kW_input: user input for relative plant cost [$/kWe] + * options: None + * constraints: None + * required if: None + */ + SAM_EXPORT void SAM_GeothermalCosts_GeoHourly_geotherm_cost_plant_per_kW_input_nset(SAM_table ptr, double number, SAM_error *err); + + /** + * Set geotherm.cost.plant_total.calc: 0: user specificed absolute plant cost, 1: calculated + * options: None + * constraints: None + * required if: None + */ + SAM_EXPORT void SAM_GeothermalCosts_GeoHourly_geotherm_cost_plant_total_calc_nset(SAM_table ptr, double number, SAM_error *err); + + /** + * Set geotherm.cost.plm.fixed: Project-land-misc fixed cost [$] + * options: None + * constraints: None + * required if: None + */ + SAM_EXPORT void SAM_GeothermalCosts_GeoHourly_geotherm_cost_plm_fixed_nset(SAM_table ptr, double number, SAM_error *err); + + /** + * Set geotherm.cost.plm.percent: Project-land-misc percent [%] + * options: None + * constraints: None + * required if: None + */ + SAM_EXPORT void SAM_GeothermalCosts_GeoHourly_geotherm_cost_plm_percent_nset(SAM_table ptr, double number, SAM_error *err); + /** * Set geotherm.cost.prod_cost_curve: Production well diameter type [0/1] * options: 0=LargerDiameter,1=SmallerDiameter @@ -223,6 +319,14 @@ extern "C" */ SAM_EXPORT void SAM_GeothermalCosts_GeoHourly_geotherm_cost_prod_cost_curve_welltype_nset(SAM_table ptr, double number, SAM_error *err); + /** + * Set geotherm.cost.prod_inj_non_drill: Non drilling cost for prod and inj well [$] + * options: 0=LargerDiameter,1=SmallerDiameter + * constraints: None + * required if: calc_drill_costs=1 + */ + SAM_EXPORT void SAM_GeothermalCosts_GeoHourly_geotherm_cost_prod_inj_non_drill_nset(SAM_table ptr, double number, SAM_error *err); + /** * Set geotherm.cost.pump_casing_cost: Pump casing cost per foot [$/ft] * options: None @@ -247,6 +351,46 @@ extern "C" */ SAM_EXPORT void SAM_GeothermalCosts_GeoHourly_geotherm_cost_pump_per_foot_nset(SAM_table ptr, double number, SAM_error *err); + /** + * Set geotherm.cost.pumping.amount_specified: Absolute pump cost input [$] + * options: None + * constraints: None + * required if: None + */ + SAM_EXPORT void SAM_GeothermalCosts_GeoHourly_geotherm_cost_pumping_amount_specified_nset(SAM_table ptr, double number, SAM_error *err); + + /** + * Set geotherm.cost.pumping.calc: 0: user specified absolute pump cost, 1: calculated + * options: None + * constraints: None + * required if: None + */ + SAM_EXPORT void SAM_GeothermalCosts_GeoHourly_geotherm_cost_pumping_calc_nset(SAM_table ptr, double number, SAM_error *err); + + /** + * Set geotherm.cost.recap_specified: Absolute recap cost input [$] + * options: None + * constraints: None + * required if: None + */ + SAM_EXPORT void SAM_GeothermalCosts_GeoHourly_geotherm_cost_recap_specified_nset(SAM_table ptr, double number, SAM_error *err); + + /** + * Set geotherm.cost.recap_use_calc: 0: user specified absolute recap cost, 1: calculated + * options: None + * constraints: None + * required if: None + */ + SAM_EXPORT void SAM_GeothermalCosts_GeoHourly_geotherm_cost_recap_use_calc_nset(SAM_table ptr, double number, SAM_error *err); + + /** + * Set geotherm.cost.sales_tax.percent: Percent of direct cost to which sales tax is applied [%] + * options: None + * constraints: None + * required if: None + */ + SAM_EXPORT void SAM_GeothermalCosts_GeoHourly_geotherm_cost_sales_tax_percent_nset(SAM_table ptr, double number, SAM_error *err); + /** * Set geotherm.cost.stim_non_drill: Stimulation non drilling costs [$] * options: None @@ -256,7 +400,7 @@ extern "C" SAM_EXPORT void SAM_GeothermalCosts_GeoHourly_geotherm_cost_stim_non_drill_nset(SAM_table ptr, double number, SAM_error *err); /** - * Set gross_cost_output: Gross output from GETEM for cost calculations [kW] + * Set gross_cost_output: Gross output from GETEM for cost calculations [kWe] * options: None * constraints: None * required if: * @@ -264,7 +408,7 @@ extern "C" SAM_EXPORT void SAM_GeothermalCosts_GeoHourly_gross_cost_output_nset(SAM_table ptr, double number, SAM_error *err); /** - * Set gross_output: Gross output from GETEM [MW] + * Set gross_output: Gross output from GETEM [MWe] * options: None * constraints: None * required if: * @@ -303,6 +447,14 @@ extern "C" */ SAM_EXPORT void SAM_GeothermalCosts_GeoHourly_ncg_condensate_pump_nset(SAM_table ptr, double number, SAM_error *err); + /** + * Set net_plant_output: Net plant power to grid; net sales in GETEM [MWe] + * options: None + * constraints: None + * required if: * + */ + SAM_EXPORT void SAM_GeothermalCosts_GeoHourly_net_plant_output_nset(SAM_table ptr, double number, SAM_error *err); + /** * Set num_wells_getem: Number of production wells required * options: None @@ -320,26 +472,34 @@ extern "C" SAM_EXPORT void SAM_GeothermalCosts_GeoHourly_num_wells_getem_inj_drilled_nset(SAM_table ptr, double number, SAM_error *err); /** - * Set num_wells_getem_prod_drilled: Number of drilled production wells [0/1] - * options: 0=LargerDiameter,1=SmallerDiameter + * Set num_wells_getem_prod_drilled: Number of drilled production wells + * options: None * constraints: None * required if: None */ SAM_EXPORT void SAM_GeothermalCosts_GeoHourly_num_wells_getem_prod_drilled_nset(SAM_table ptr, double number, SAM_error *err); /** - * Set num_wells_getem_prod_failed: Number of failed production wells [0/1] - * options: 0=LargerDiameter,1=SmallerDiameter + * Set num_wells_getem_prod_failed: Number of failed production wells + * options: None * constraints: None * required if: None */ SAM_EXPORT void SAM_GeothermalCosts_GeoHourly_num_wells_getem_prod_failed_nset(SAM_table ptr, double number, SAM_error *err); + /** + * Set num_wells_getem_prod_inj_sum: Sum of production and injection drilled wells + * options: None + * constraints: None + * required if: None + */ + SAM_EXPORT void SAM_GeothermalCosts_GeoHourly_num_wells_getem_prod_inj_sum_nset(SAM_table ptr, double number, SAM_error *err); + /** * Set ppi_base_year: PPI Base Year * options: None * constraints: None - * required if: ?=19 + * required if: None */ SAM_EXPORT void SAM_GeothermalCosts_GeoHourly_ppi_base_year_nset(SAM_table ptr, double number, SAM_error *err); @@ -431,6 +591,14 @@ extern "C" */ SAM_EXPORT void SAM_GeothermalCosts_GeoHourly_resource_depth_nset(SAM_table ptr, double number, SAM_error *err); + /** + * Set sales_tax_rate: Sales tax rate [%] + * options: None + * constraints: None + * required if: None + */ + SAM_EXPORT void SAM_GeothermalCosts_GeoHourly_sales_tax_rate_nset(SAM_table ptr, double number, SAM_error *err); + /** * Set spec_vol: Specific Volume [cft/lb] * options: None @@ -496,6 +664,32 @@ extern "C" SAM_EXPORT void SAM_GeothermalCosts_GeoHourly_x_lp_nset(SAM_table ptr, double number, SAM_error *err); + // + // FinancialModel parameters + // + + /** + * Set geo_financial_model: [1-8] + * options: None + * constraints: INTEGER,MIN=0 + * required if: ?=1 + */ + SAM_EXPORT void SAM_GeothermalCosts_FinancialModel_geo_financial_model_nset(SAM_table ptr, double number, SAM_error *err); + + + // + // Common parameters + // + + /** + * Set geotherm.cost.plant_total.amount_specified: Absolute plant cost input [$] + * options: GeoHourly + * constraints: None + * required if: None + */ + SAM_EXPORT void SAM_GeothermalCosts_Common_geotherm_cost_plant_total_amount_specified_nset(SAM_table ptr, double number, SAM_error *err); + + /** * GeoHourly Getters */ @@ -528,6 +722,16 @@ extern "C" SAM_EXPORT double SAM_GeothermalCosts_GeoHourly_geotherm_cost_conf_num_wells_nget(SAM_table ptr, SAM_error *err); + SAM_EXPORT double SAM_GeothermalCosts_GeoHourly_geotherm_cost_contingency_percent_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_GeothermalCosts_GeoHourly_geotherm_cost_drilling_amount_specified_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_GeothermalCosts_GeoHourly_geotherm_cost_drilling_calc_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_GeothermalCosts_GeoHourly_geotherm_cost_epc_fixed_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_GeothermalCosts_GeoHourly_geotherm_cost_epc_percent_nget(SAM_table ptr, SAM_error *err); + SAM_EXPORT double SAM_GeothermalCosts_GeoHourly_geotherm_cost_expl_lump_sum_nget(SAM_table ptr, SAM_error *err); SAM_EXPORT double SAM_GeothermalCosts_GeoHourly_geotherm_cost_expl_multiplier_nget(SAM_table ptr, SAM_error *err); @@ -536,24 +740,50 @@ extern "C" SAM_EXPORT double SAM_GeothermalCosts_GeoHourly_geotherm_cost_expl_num_wells_nget(SAM_table ptr, SAM_error *err); + SAM_EXPORT double SAM_GeothermalCosts_GeoHourly_geotherm_cost_indirect_amount_specified_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_GeothermalCosts_GeoHourly_geotherm_cost_indirect_calc_nget(SAM_table ptr, SAM_error *err); + SAM_EXPORT double SAM_GeothermalCosts_GeoHourly_geotherm_cost_inj_cost_curve_nget(SAM_table ptr, SAM_error *err); SAM_EXPORT double SAM_GeothermalCosts_GeoHourly_geotherm_cost_inj_cost_curve_welldiam_nget(SAM_table ptr, SAM_error *err); SAM_EXPORT double SAM_GeothermalCosts_GeoHourly_geotherm_cost_inj_cost_curve_welltype_nget(SAM_table ptr, SAM_error *err); + SAM_EXPORT double SAM_GeothermalCosts_GeoHourly_geotherm_cost_plant_auto_estimate_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_GeothermalCosts_GeoHourly_geotherm_cost_plant_per_kW_input_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_GeothermalCosts_GeoHourly_geotherm_cost_plant_total_calc_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_GeothermalCosts_GeoHourly_geotherm_cost_plm_fixed_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_GeothermalCosts_GeoHourly_geotherm_cost_plm_percent_nget(SAM_table ptr, SAM_error *err); + SAM_EXPORT double SAM_GeothermalCosts_GeoHourly_geotherm_cost_prod_cost_curve_nget(SAM_table ptr, SAM_error *err); SAM_EXPORT double SAM_GeothermalCosts_GeoHourly_geotherm_cost_prod_cost_curve_welldiam_nget(SAM_table ptr, SAM_error *err); SAM_EXPORT double SAM_GeothermalCosts_GeoHourly_geotherm_cost_prod_cost_curve_welltype_nget(SAM_table ptr, SAM_error *err); + SAM_EXPORT double SAM_GeothermalCosts_GeoHourly_geotherm_cost_prod_inj_non_drill_nget(SAM_table ptr, SAM_error *err); + SAM_EXPORT double SAM_GeothermalCosts_GeoHourly_geotherm_cost_pump_casing_cost_nget(SAM_table ptr, SAM_error *err); SAM_EXPORT double SAM_GeothermalCosts_GeoHourly_geotherm_cost_pump_fixed_nget(SAM_table ptr, SAM_error *err); SAM_EXPORT double SAM_GeothermalCosts_GeoHourly_geotherm_cost_pump_per_foot_nget(SAM_table ptr, SAM_error *err); + SAM_EXPORT double SAM_GeothermalCosts_GeoHourly_geotherm_cost_pumping_amount_specified_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_GeothermalCosts_GeoHourly_geotherm_cost_pumping_calc_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_GeothermalCosts_GeoHourly_geotherm_cost_recap_specified_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_GeothermalCosts_GeoHourly_geotherm_cost_recap_use_calc_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_GeothermalCosts_GeoHourly_geotherm_cost_sales_tax_percent_nget(SAM_table ptr, SAM_error *err); + SAM_EXPORT double SAM_GeothermalCosts_GeoHourly_geotherm_cost_stim_non_drill_nget(SAM_table ptr, SAM_error *err); SAM_EXPORT double SAM_GeothermalCosts_GeoHourly_gross_cost_output_nget(SAM_table ptr, SAM_error *err); @@ -568,6 +798,8 @@ extern "C" SAM_EXPORT double SAM_GeothermalCosts_GeoHourly_ncg_condensate_pump_nget(SAM_table ptr, SAM_error *err); + SAM_EXPORT double SAM_GeothermalCosts_GeoHourly_net_plant_output_nget(SAM_table ptr, SAM_error *err); + SAM_EXPORT double SAM_GeothermalCosts_GeoHourly_num_wells_getem_nget(SAM_table ptr, SAM_error *err); SAM_EXPORT double SAM_GeothermalCosts_GeoHourly_num_wells_getem_inj_drilled_nget(SAM_table ptr, SAM_error *err); @@ -576,6 +808,8 @@ extern "C" SAM_EXPORT double SAM_GeothermalCosts_GeoHourly_num_wells_getem_prod_failed_nget(SAM_table ptr, SAM_error *err); + SAM_EXPORT double SAM_GeothermalCosts_GeoHourly_num_wells_getem_prod_inj_sum_nget(SAM_table ptr, SAM_error *err); + SAM_EXPORT double SAM_GeothermalCosts_GeoHourly_ppi_base_year_nget(SAM_table ptr, SAM_error *err); SAM_EXPORT double SAM_GeothermalCosts_GeoHourly_pressure_ratio_1_nget(SAM_table ptr, SAM_error *err); @@ -600,6 +834,8 @@ extern "C" SAM_EXPORT double SAM_GeothermalCosts_GeoHourly_resource_depth_nget(SAM_table ptr, SAM_error *err); + SAM_EXPORT double SAM_GeothermalCosts_GeoHourly_sales_tax_rate_nget(SAM_table ptr, SAM_error *err); + SAM_EXPORT double SAM_GeothermalCosts_GeoHourly_spec_vol_nget(SAM_table ptr, SAM_error *err); SAM_EXPORT double SAM_GeothermalCosts_GeoHourly_spec_vol_lp_nget(SAM_table ptr, SAM_error *err); @@ -617,6 +853,20 @@ extern "C" SAM_EXPORT double SAM_GeothermalCosts_GeoHourly_x_lp_nget(SAM_table ptr, SAM_error *err); + /** + * FinancialModel Getters + */ + + SAM_EXPORT double SAM_GeothermalCosts_FinancialModel_geo_financial_model_nget(SAM_table ptr, SAM_error *err); + + + /** + * Common Getters + */ + + SAM_EXPORT double SAM_GeothermalCosts_Common_geotherm_cost_plant_total_amount_specified_nget(SAM_table ptr, SAM_error *err); + + /** * Outputs Getters */ @@ -633,15 +883,21 @@ extern "C" SAM_EXPORT double SAM_GeothermalCosts_Outputs_conf_total_cost_nget(SAM_table ptr, SAM_error *err); + SAM_EXPORT double SAM_GeothermalCosts_Outputs_contingency_cost_nget(SAM_table ptr, SAM_error *err); + SAM_EXPORT double SAM_GeothermalCosts_Outputs_engineering_cost_nget(SAM_table ptr, SAM_error *err); + SAM_EXPORT double SAM_GeothermalCosts_Outputs_epc_total_cost_nget(SAM_table ptr, SAM_error *err); + SAM_EXPORT double SAM_GeothermalCosts_Outputs_expl_drilling_cost_nget(SAM_table ptr, SAM_error *err); + SAM_EXPORT double SAM_GeothermalCosts_Outputs_expl_per_well_cost_nget(SAM_table ptr, SAM_error *err); + SAM_EXPORT double SAM_GeothermalCosts_Outputs_expl_total_cost_nget(SAM_table ptr, SAM_error *err); SAM_EXPORT double SAM_GeothermalCosts_Outputs_field_gathering_num_wells_nget(SAM_table ptr, SAM_error *err); - SAM_EXPORT double SAM_GeothermalCosts_Outputs_indirect_pump_cost_nget(SAM_table ptr, SAM_error *err); + SAM_EXPORT double SAM_GeothermalCosts_Outputs_indirect_cost_nget(SAM_table ptr, SAM_error *err); SAM_EXPORT double SAM_GeothermalCosts_Outputs_indirect_pump_gathering_cost_nget(SAM_table ptr, SAM_error *err); @@ -655,8 +911,14 @@ extern "C" SAM_EXPORT double SAM_GeothermalCosts_Outputs_inj_well_cost_nget(SAM_table ptr, SAM_error *err); + SAM_EXPORT double SAM_GeothermalCosts_Outputs_installed_cost_per_kW_nget(SAM_table ptr, SAM_error *err); + SAM_EXPORT double SAM_GeothermalCosts_Outputs_piping_cost_per_well_nget(SAM_table ptr, SAM_error *err); + SAM_EXPORT double SAM_GeothermalCosts_Outputs_plm_total_cost_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_GeothermalCosts_Outputs_prod_inj_total_cost_nget(SAM_table ptr, SAM_error *err); + SAM_EXPORT double SAM_GeothermalCosts_Outputs_prod_pump_cost_nget(SAM_table ptr, SAM_error *err); SAM_EXPORT double SAM_GeothermalCosts_Outputs_prod_pump_cost_per_well_nget(SAM_table ptr, SAM_error *err); @@ -669,24 +931,44 @@ extern "C" SAM_EXPORT double SAM_GeothermalCosts_Outputs_pump_only_cost_nget(SAM_table ptr, SAM_error *err); + SAM_EXPORT double SAM_GeothermalCosts_Outputs_sales_tax_cost_nget(SAM_table ptr, SAM_error *err); + SAM_EXPORT double SAM_GeothermalCosts_Outputs_stim_cost_non_drill_nget(SAM_table ptr, SAM_error *err); SAM_EXPORT double SAM_GeothermalCosts_Outputs_stim_cost_per_well_nget(SAM_table ptr, SAM_error *err); SAM_EXPORT double SAM_GeothermalCosts_Outputs_stim_total_cost_nget(SAM_table ptr, SAM_error *err); + SAM_EXPORT double SAM_GeothermalCosts_Outputs_sum_prod_inj_total_cost_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_GeothermalCosts_Outputs_system_recapitalization_cost_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_GeothermalCosts_Outputs_total_capital_cost_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_GeothermalCosts_Outputs_total_direct_cost_nget(SAM_table ptr, SAM_error *err); + SAM_EXPORT double SAM_GeothermalCosts_Outputs_total_drilling_cost_nget(SAM_table ptr, SAM_error *err); + SAM_EXPORT double SAM_GeothermalCosts_Outputs_total_drilling_cost_used_nget(SAM_table ptr, SAM_error *err); + SAM_EXPORT double SAM_GeothermalCosts_Outputs_total_drilling_permitting_nget(SAM_table ptr, SAM_error *err); SAM_EXPORT double SAM_GeothermalCosts_Outputs_total_expl_permitting_nget(SAM_table ptr, SAM_error *err); SAM_EXPORT double SAM_GeothermalCosts_Outputs_total_gathering_cost_nget(SAM_table ptr, SAM_error *err); + SAM_EXPORT double SAM_GeothermalCosts_Outputs_total_installed_cost_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_GeothermalCosts_Outputs_total_plant_cost_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_GeothermalCosts_Outputs_total_plant_cost_used_nget(SAM_table ptr, SAM_error *err); + SAM_EXPORT double SAM_GeothermalCosts_Outputs_total_pump_cost_nget(SAM_table ptr, SAM_error *err); SAM_EXPORT double SAM_GeothermalCosts_Outputs_total_pump_gathering_cost_nget(SAM_table ptr, SAM_error *err); + SAM_EXPORT double SAM_GeothermalCosts_Outputs_total_pump_gathering_cost_used_nget(SAM_table ptr, SAM_error *err); + SAM_EXPORT double SAM_GeothermalCosts_Outputs_total_surface_equipment_cost_nget(SAM_table ptr, SAM_error *err); #ifdef __cplusplus diff --git a/api/include/SAM_GeothermalNoFin.h b/api/include/SAM_GeothermalNoFin.h new file mode 100644 index 0000000000..2041360aea --- /dev/null +++ b/api/include/SAM_GeothermalNoFin.h @@ -0,0 +1,1118 @@ +#ifndef SAM_GEOTHERMALNOFIN_H_ +#define SAM_GEOTHERMALNOFIN_H_ + +#include "visibility.h" +#include "SAM_api.h" + + +#include +#ifdef __cplusplus +extern "C" +{ +#endif + + // + // GeothermalNoFin Technology Model + // + + /** + * Create a GeothermalNoFin variable table. + * @param def: the set of financial model-dependent defaults to use (None, Residential, ...) + * @param[in,out] err: a pointer to an error object + */ + + SAM_EXPORT typedef void * SAM_GeothermalNoFin; + + /// verbosity level 0 or 1. Returns 1 on success + SAM_EXPORT int SAM_GeothermalNoFin_execute(SAM_table data, int verbosity, SAM_error* err); + + + // + // SystemControl parameters + // + + /** + * Set sim_type: 1 (default): timeseries, 2: design only + * options: None + * constraints: None + * required if: ?=1 + */ + SAM_EXPORT void SAM_GeothermalNoFin_SystemControl_sim_type_nset(SAM_table ptr, double number, SAM_error *err); + + + // + // FinancialModel parameters + // + + /** + * Set geo_financial_model: [1-8] + * options: None + * constraints: INTEGER,MIN=0 + * required if: ?=1 + */ + SAM_EXPORT void SAM_GeothermalNoFin_FinancialModel_geo_financial_model_nset(SAM_table ptr, double number, SAM_error *err); + + + // + // GeoHourly parameters + // + + /** + * Set CT: Condenser type (Wet, Dry,Hybrid) [(1-3)] + * options: None + * constraints: INTEGER + * required if: sim_type=1 + */ + SAM_EXPORT void SAM_GeothermalNoFin_GeoHourly_CT_nset(SAM_table ptr, double number, SAM_error *err); + + /** + * Set P_boil: Design Boiler Pressure [bar] + * options: None + * constraints: None + * required if: sim_type=1 + */ + SAM_EXPORT void SAM_GeothermalNoFin_GeoHourly_P_boil_nset(SAM_table ptr, double number, SAM_error *err); + + /** + * Set P_cond_min: Minimum condenser pressure [in Hg] + * options: None + * constraints: None + * required if: sim_type=1 + */ + SAM_EXPORT void SAM_GeothermalNoFin_GeoHourly_P_cond_min_nset(SAM_table ptr, double number, SAM_error *err); + + /** + * Set P_cond_ratio: Condenser pressure ratio + * options: None + * constraints: None + * required if: sim_type=1 + */ + SAM_EXPORT void SAM_GeothermalNoFin_GeoHourly_P_cond_ratio_nset(SAM_table ptr, double number, SAM_error *err); + + /** + * Set T_ITD_des: Design ITD for dry system [C] + * options: None + * constraints: None + * required if: sim_type=1 + */ + SAM_EXPORT void SAM_GeothermalNoFin_GeoHourly_T_ITD_des_nset(SAM_table ptr, double number, SAM_error *err); + + /** + * Set T_amb_des: Design ambient temperature [C] + * options: None + * constraints: None + * required if: sim_type=1 + */ + SAM_EXPORT void SAM_GeothermalNoFin_GeoHourly_T_amb_des_nset(SAM_table ptr, double number, SAM_error *err); + + /** + * Set T_approach: Approach Temperature [C] + * options: None + * constraints: None + * required if: sim_type=1 + */ + SAM_EXPORT void SAM_GeothermalNoFin_GeoHourly_T_approach_nset(SAM_table ptr, double number, SAM_error *err); + + /** + * Set T_htf_cold_ref: Outlet design temp [C] + * options: None + * constraints: None + * required if: sim_type=1 + */ + SAM_EXPORT void SAM_GeothermalNoFin_GeoHourly_T_htf_cold_ref_nset(SAM_table ptr, double number, SAM_error *err); + + /** + * Set allow_reservoir_replacements: Allow reservoir replacements + * options: None + * constraints: None + * required if: ?=0 + */ + SAM_EXPORT void SAM_GeothermalNoFin_GeoHourly_allow_reservoir_replacements_nset(SAM_table ptr, double number, SAM_error *err); + + /** + * Set ambient_pressure: Ambient pressure [psi] + * options: None + * constraints: None + * required if: * + */ + SAM_EXPORT void SAM_GeothermalNoFin_GeoHourly_ambient_pressure_nset(SAM_table ptr, double number, SAM_error *err); + + /** + * Set analysis_type: Analysis Type + * options: None + * constraints: INTEGER + * required if: * + */ + SAM_EXPORT void SAM_GeothermalNoFin_GeoHourly_analysis_type_nset(SAM_table ptr, double number, SAM_error *err); + + /** + * Set conversion_subtype: Conversion Subtype + * options: None + * constraints: INTEGER + * required if: * + */ + SAM_EXPORT void SAM_GeothermalNoFin_GeoHourly_conversion_subtype_nset(SAM_table ptr, double number, SAM_error *err); + + /** + * Set conversion_type: Conversion Type (0: binary; 1: flash) + * options: None + * constraints: INTEGER + * required if: * + */ + SAM_EXPORT void SAM_GeothermalNoFin_GeoHourly_conversion_type_nset(SAM_table ptr, double number, SAM_error *err); + + /** + * Set dT_cw_ref: Design condenser cooling water inlet/outlet T diff [C] + * options: None + * constraints: None + * required if: sim_type=1 + */ + SAM_EXPORT void SAM_GeothermalNoFin_GeoHourly_dT_cw_ref_nset(SAM_table ptr, double number, SAM_error *err); + + /** + * Set decline_type: Temp decline Type (0: enter rate; 1 calc rate) + * options: None + * constraints: INTEGER + * required if: * + */ + SAM_EXPORT void SAM_GeothermalNoFin_GeoHourly_decline_type_nset(SAM_table ptr, double number, SAM_error *err); + + /** + * Set delta_pressure_equip: Delta pressure across surface equipment [psi] + * options: None + * constraints: None + * required if: * + */ + SAM_EXPORT void SAM_GeothermalNoFin_GeoHourly_delta_pressure_equip_nset(SAM_table ptr, double number, SAM_error *err); + + /** + * Set drilling_success_rate: Drilling success rate [%] + * options: None + * constraints: None + * required if: None + */ + SAM_EXPORT void SAM_GeothermalNoFin_GeoHourly_drilling_success_rate_nset(SAM_table ptr, double number, SAM_error *err); + + /** + * Set dt_prod_well: Temperature loss in production well [C] + * options: None + * constraints: None + * required if: * + */ + SAM_EXPORT void SAM_GeothermalNoFin_GeoHourly_dt_prod_well_nset(SAM_table ptr, double number, SAM_error *err); + + /** + * Set eta_ref: Desgin conversion efficiency [%] + * options: None + * constraints: None + * required if: sim_type=1 + */ + SAM_EXPORT void SAM_GeothermalNoFin_GeoHourly_eta_ref_nset(SAM_table ptr, double number, SAM_error *err); + + /** + * Set excess_pressure_pump: Excess pressure @ pump suction [psi] + * options: None + * constraints: None + * required if: * + */ + SAM_EXPORT void SAM_GeothermalNoFin_GeoHourly_excess_pressure_pump_nset(SAM_table ptr, double number, SAM_error *err); + + /** + * Set failed_prod_flow_ratio: Failed production well flow ratio + * options: None + * constraints: None + * required if: None + */ + SAM_EXPORT void SAM_GeothermalNoFin_GeoHourly_failed_prod_flow_ratio_nset(SAM_table ptr, double number, SAM_error *err); + + /** + * Set file_name: local weather file path + * options: None + * constraints: LOCAL_FILE + * required if: sim_type=1 + */ + SAM_EXPORT void SAM_GeothermalNoFin_GeoHourly_file_name_sset(SAM_table ptr, const char* str, SAM_error *err); + + /** + * Set fracture_angle: Fracture angle [deg] + * options: None + * constraints: None + * required if: * + */ + SAM_EXPORT void SAM_GeothermalNoFin_GeoHourly_fracture_angle_nset(SAM_table ptr, double number, SAM_error *err); + + /** + * Set fracture_aperature: Fracture aperature [m] + * options: None + * constraints: None + * required if: * + */ + SAM_EXPORT void SAM_GeothermalNoFin_GeoHourly_fracture_aperature_nset(SAM_table ptr, double number, SAM_error *err); + + /** + * Set fracture_length: Fracture length [m] + * options: None + * constraints: None + * required if: * + */ + SAM_EXPORT void SAM_GeothermalNoFin_GeoHourly_fracture_length_nset(SAM_table ptr, double number, SAM_error *err); + + /** + * Set fracture_spacing: Fracture spacing [m] + * options: None + * constraints: None + * required if: * + */ + SAM_EXPORT void SAM_GeothermalNoFin_GeoHourly_fracture_spacing_nset(SAM_table ptr, double number, SAM_error *err); + + /** + * Set fracture_width: Fracture width [m] + * options: None + * constraints: None + * required if: * + */ + SAM_EXPORT void SAM_GeothermalNoFin_GeoHourly_fracture_width_nset(SAM_table ptr, double number, SAM_error *err); + + /** + * Set geotherm.cost.conf_num_wells: Number of confirmation wells + * options: None + * constraints: None + * required if: * + */ + SAM_EXPORT void SAM_GeothermalNoFin_GeoHourly_geotherm_cost_conf_num_wells_nset(SAM_table ptr, double number, SAM_error *err); + + /** + * Set geotherm.cost.confirm_wells_percent: % of Confirmation Wells Used for Production + * options: None + * constraints: None + * required if: * + */ + SAM_EXPORT void SAM_GeothermalNoFin_GeoHourly_geotherm_cost_confirm_wells_percent_nset(SAM_table ptr, double number, SAM_error *err); + + /** + * Set geotherm.cost.inj_cost_curve_welldiam: Injection well diameter type [0/1] + * options: 0=LargerDiameter,1=SmallerDiameter + * constraints: None + * required if: * + */ + SAM_EXPORT void SAM_GeothermalNoFin_GeoHourly_geotherm_cost_inj_cost_curve_welldiam_nset(SAM_table ptr, double number, SAM_error *err); + + /** + * Set geotherm.cost.inj_cost_curve_welltype: Injection well type [0/1] + * options: None + * constraints: None + * required if: * + */ + SAM_EXPORT void SAM_GeothermalNoFin_GeoHourly_geotherm_cost_inj_cost_curve_welltype_nset(SAM_table ptr, double number, SAM_error *err); + + /** + * Set geotherm.cost.inj_prod_well_ratio: Ratio of injection wells to production wells + * options: None + * constraints: None + * required if: None + */ + SAM_EXPORT void SAM_GeothermalNoFin_GeoHourly_geotherm_cost_inj_prod_well_ratio_nset(SAM_table ptr, double number, SAM_error *err); + + /** + * Set geotherm.cost.prod_cost_curve_welldiam: Production well diameter type [0/1] + * options: 0=LargerDiameter,1=SmallerDiameter + * constraints: None + * required if: * + */ + SAM_EXPORT void SAM_GeothermalNoFin_GeoHourly_geotherm_cost_prod_cost_curve_welldiam_nset(SAM_table ptr, double number, SAM_error *err); + + /** + * Set geotherm.cost.prod_cost_curve_welltype: Production well type [0/1] + * options: None + * constraints: None + * required if: * + */ + SAM_EXPORT void SAM_GeothermalNoFin_GeoHourly_geotherm_cost_prod_cost_curve_welltype_nset(SAM_table ptr, double number, SAM_error *err); + + /** + * Set hc_ctl1: HC Control 1 + * options: None + * constraints: None + * required if: sim_type=1 + */ + SAM_EXPORT void SAM_GeothermalNoFin_GeoHourly_hc_ctl1_nset(SAM_table ptr, double number, SAM_error *err); + + /** + * Set hc_ctl2: HC Control 2 + * options: None + * constraints: None + * required if: sim_type=1 + */ + SAM_EXPORT void SAM_GeothermalNoFin_GeoHourly_hc_ctl2_nset(SAM_table ptr, double number, SAM_error *err); + + /** + * Set hc_ctl3: HC Control 3 + * options: None + * constraints: None + * required if: sim_type=1 + */ + SAM_EXPORT void SAM_GeothermalNoFin_GeoHourly_hc_ctl3_nset(SAM_table ptr, double number, SAM_error *err); + + /** + * Set hc_ctl4: HC Control 4 + * options: None + * constraints: None + * required if: sim_type=1 + */ + SAM_EXPORT void SAM_GeothermalNoFin_GeoHourly_hc_ctl4_nset(SAM_table ptr, double number, SAM_error *err); + + /** + * Set hc_ctl5: HC Control 5 + * options: None + * constraints: None + * required if: sim_type=1 + */ + SAM_EXPORT void SAM_GeothermalNoFin_GeoHourly_hc_ctl5_nset(SAM_table ptr, double number, SAM_error *err); + + /** + * Set hc_ctl6: HC Control 6 + * options: None + * constraints: None + * required if: sim_type=1 + */ + SAM_EXPORT void SAM_GeothermalNoFin_GeoHourly_hc_ctl6_nset(SAM_table ptr, double number, SAM_error *err); + + /** + * Set hc_ctl7: HC Control 7 + * options: None + * constraints: None + * required if: sim_type=1 + */ + SAM_EXPORT void SAM_GeothermalNoFin_GeoHourly_hc_ctl7_nset(SAM_table ptr, double number, SAM_error *err); + + /** + * Set hc_ctl8: HC Control 8 + * options: None + * constraints: None + * required if: sim_type=1 + */ + SAM_EXPORT void SAM_GeothermalNoFin_GeoHourly_hc_ctl8_nset(SAM_table ptr, double number, SAM_error *err); + + /** + * Set hc_ctl9: HC Control 9 + * options: None + * constraints: None + * required if: sim_type=1 + */ + SAM_EXPORT void SAM_GeothermalNoFin_GeoHourly_hc_ctl9_nset(SAM_table ptr, double number, SAM_error *err); + + /** + * Set hr_pl_nlev: # part-load increments [(0-9)] + * options: None + * constraints: INTEGER + * required if: sim_type=1 + */ + SAM_EXPORT void SAM_GeothermalNoFin_GeoHourly_hr_pl_nlev_nset(SAM_table ptr, double number, SAM_error *err); + + /** + * Set hybrid_dispatch_schedule: Daily dispatch schedule + * options: None + * constraints: TOUSCHED + * required if: sim_type=1 + */ + SAM_EXPORT void SAM_GeothermalNoFin_GeoHourly_hybrid_dispatch_schedule_sset(SAM_table ptr, const char* str, SAM_error *err); + + /** + * Set inj_prod_well_distance: Distance from injection to production wells [m] + * options: None + * constraints: None + * required if: * + */ + SAM_EXPORT void SAM_GeothermalNoFin_GeoHourly_inj_prod_well_distance_nset(SAM_table ptr, double number, SAM_error *err); + + /** + * Set injectivity_index: Injectivity index [lb/hr-psi] + * options: None + * constraints: None + * required if: * + */ + SAM_EXPORT void SAM_GeothermalNoFin_GeoHourly_injectivity_index_nset(SAM_table ptr, double number, SAM_error *err); + + /** + * Set model_choice: Which model to run (0,1,2) + * options: None + * constraints: INTEGER + * required if: * + */ + SAM_EXPORT void SAM_GeothermalNoFin_GeoHourly_model_choice_nset(SAM_table ptr, double number, SAM_error *err); + + /** + * Set nameplate: Desired plant output [kW] + * options: None + * constraints: None + * required if: * + */ + SAM_EXPORT void SAM_GeothermalNoFin_GeoHourly_nameplate_nset(SAM_table ptr, double number, SAM_error *err); + + /** + * Set num_fractures: Number of fractures + * options: None + * constraints: INTEGER + * required if: * + */ + SAM_EXPORT void SAM_GeothermalNoFin_GeoHourly_num_fractures_nset(SAM_table ptr, double number, SAM_error *err); + + /** + * Set num_wells: Number of Wells + * options: None + * constraints: None + * required if: * + */ + SAM_EXPORT void SAM_GeothermalNoFin_GeoHourly_num_wells_nset(SAM_table ptr, double number, SAM_error *err); + + /** + * Set pb_bd_frac: Blowdown steam fraction [%] + * options: None + * constraints: None + * required if: sim_type=1 + */ + SAM_EXPORT void SAM_GeothermalNoFin_GeoHourly_pb_bd_frac_nset(SAM_table ptr, double number, SAM_error *err); + + /** + * Set plant_efficiency_input: Plant efficiency + * options: None + * constraints: None + * required if: * + */ + SAM_EXPORT void SAM_GeothermalNoFin_GeoHourly_plant_efficiency_input_nset(SAM_table ptr, double number, SAM_error *err); + + /** + * Set prod_well_choice: Temperature loss in production well choice [0/1] + * options: None + * constraints: None + * required if: * + */ + SAM_EXPORT void SAM_GeothermalNoFin_GeoHourly_prod_well_choice_nset(SAM_table ptr, double number, SAM_error *err); + + /** + * Set pump_efficiency: Pump efficiency [%] + * options: None + * constraints: None + * required if: * + */ + SAM_EXPORT void SAM_GeothermalNoFin_GeoHourly_pump_efficiency_nset(SAM_table ptr, double number, SAM_error *err); + + /** + * Set q_sby_frac: % thermal power for standby mode [%] + * options: None + * constraints: None + * required if: sim_type=1 + */ + SAM_EXPORT void SAM_GeothermalNoFin_GeoHourly_q_sby_frac_nset(SAM_table ptr, double number, SAM_error *err); + + /** + * Set reservoir_height: Reservoir height [m] + * options: None + * constraints: None + * required if: * + */ + SAM_EXPORT void SAM_GeothermalNoFin_GeoHourly_reservoir_height_nset(SAM_table ptr, double number, SAM_error *err); + + /** + * Set reservoir_model_inputs: Reservoir temperatures over time + * options: None + * constraints: None + * required if: reservoir_pressure_change_type=3 + */ + SAM_EXPORT void SAM_GeothermalNoFin_GeoHourly_reservoir_model_inputs_mset(SAM_table ptr, double* mat, int nrows, int ncols, SAM_error *err); + + /** + * Set reservoir_permeability: Reservoir Permeability [darcys] + * options: None + * constraints: None + * required if: * + */ + SAM_EXPORT void SAM_GeothermalNoFin_GeoHourly_reservoir_permeability_nset(SAM_table ptr, double number, SAM_error *err); + + /** + * Set reservoir_pressure_change: Pressure change [psi-h/1000lb] + * options: None + * constraints: None + * required if: * + */ + SAM_EXPORT void SAM_GeothermalNoFin_GeoHourly_reservoir_pressure_change_nset(SAM_table ptr, double number, SAM_error *err); + + /** + * Set reservoir_pressure_change_type: Reservoir pressure change type + * options: None + * constraints: INTEGER + * required if: * + */ + SAM_EXPORT void SAM_GeothermalNoFin_GeoHourly_reservoir_pressure_change_type_nset(SAM_table ptr, double number, SAM_error *err); + + /** + * Set reservoir_width: Reservoir width [m] + * options: None + * constraints: None + * required if: * + */ + SAM_EXPORT void SAM_GeothermalNoFin_GeoHourly_reservoir_width_nset(SAM_table ptr, double number, SAM_error *err); + + /** + * Set resource_depth: Resource Depth [m] + * options: None + * constraints: None + * required if: * + */ + SAM_EXPORT void SAM_GeothermalNoFin_GeoHourly_resource_depth_nset(SAM_table ptr, double number, SAM_error *err); + + /** + * Set resource_potential: Resource Potential [MW] + * options: None + * constraints: None + * required if: sim_type=1 + */ + SAM_EXPORT void SAM_GeothermalNoFin_GeoHourly_resource_potential_nset(SAM_table ptr, double number, SAM_error *err); + + /** + * Set resource_temp: Resource Temperature [C] + * options: None + * constraints: MAX=373 + * required if: * + */ + SAM_EXPORT void SAM_GeothermalNoFin_GeoHourly_resource_temp_nset(SAM_table ptr, double number, SAM_error *err); + + /** + * Set resource_type: Type of Resource (O = hydrothermal; 1 = EGS) + * options: None + * constraints: INTEGER + * required if: * + */ + SAM_EXPORT void SAM_GeothermalNoFin_GeoHourly_resource_type_nset(SAM_table ptr, double number, SAM_error *err); + + /** + * Set rock_density: Rock density [kg/m^3] + * options: None + * constraints: None + * required if: * + */ + SAM_EXPORT void SAM_GeothermalNoFin_GeoHourly_rock_density_nset(SAM_table ptr, double number, SAM_error *err); + + /** + * Set rock_specific_heat: Rock specific heat [J/kg-C] + * options: None + * constraints: None + * required if: * + */ + SAM_EXPORT void SAM_GeothermalNoFin_GeoHourly_rock_specific_heat_nset(SAM_table ptr, double number, SAM_error *err); + + /** + * Set rock_thermal_conductivity: Rock thermal conductivity [J/m-day-C] + * options: None + * constraints: None + * required if: * + */ + SAM_EXPORT void SAM_GeothermalNoFin_GeoHourly_rock_thermal_conductivity_nset(SAM_table ptr, double number, SAM_error *err); + + /** + * Set specified_pump_work_amount: Pump work specified by user [MW] + * options: None + * constraints: None + * required if: * + */ + SAM_EXPORT void SAM_GeothermalNoFin_GeoHourly_specified_pump_work_amount_nset(SAM_table ptr, double number, SAM_error *err); + + /** + * Set specify_pump_work: Did user specify pump work? [0 or 1] + * options: None + * constraints: INTEGER + * required if: * + */ + SAM_EXPORT void SAM_GeothermalNoFin_GeoHourly_specify_pump_work_nset(SAM_table ptr, double number, SAM_error *err); + + /** + * Set start_day_of_year: Start day of year for TOD periods [0..6] + * options: 0=Monday, 6=Sunday + * constraints: None + * required if: ?=0 + */ + SAM_EXPORT void SAM_GeothermalNoFin_GeoHourly_start_day_of_year_nset(SAM_table ptr, double number, SAM_error *err); + + /** + * Set startup_frac: % thermal power for startup [%] + * options: None + * constraints: None + * required if: sim_type=1 + */ + SAM_EXPORT void SAM_GeothermalNoFin_GeoHourly_startup_frac_nset(SAM_table ptr, double number, SAM_error *err); + + /** + * Set startup_time: Hours to start power block [hours] + * options: None + * constraints: None + * required if: sim_type=1 + */ + SAM_EXPORT void SAM_GeothermalNoFin_GeoHourly_startup_time_nset(SAM_table ptr, double number, SAM_error *err); + + /** + * Set stim_success_rate: Stimulation success rate [%] + * options: None + * constraints: None + * required if: None + */ + SAM_EXPORT void SAM_GeothermalNoFin_GeoHourly_stim_success_rate_nset(SAM_table ptr, double number, SAM_error *err); + + /** + * Set stimulation_type: Which wells are stimulated [0/1/2/3] + * options: 0=Injection,1=Production,2=Both,3=Neither + * constraints: None + * required if: ?=3 + */ + SAM_EXPORT void SAM_GeothermalNoFin_GeoHourly_stimulation_type_nset(SAM_table ptr, double number, SAM_error *err); + + /** + * Set subsurface_water_loss: Subsurface water loss [%] + * options: None + * constraints: None + * required if: * + */ + SAM_EXPORT void SAM_GeothermalNoFin_GeoHourly_subsurface_water_loss_nset(SAM_table ptr, double number, SAM_error *err); + + /** + * Set temp_decline_max: Maximum temperature decline [C] + * options: None + * constraints: None + * required if: * + */ + SAM_EXPORT void SAM_GeothermalNoFin_GeoHourly_temp_decline_max_nset(SAM_table ptr, double number, SAM_error *err); + + /** + * Set temp_decline_rate: Temperature decline rate [%/yr] + * options: None + * constraints: None + * required if: * + */ + SAM_EXPORT void SAM_GeothermalNoFin_GeoHourly_temp_decline_rate_nset(SAM_table ptr, double number, SAM_error *err); + + /** + * Set use_weather_file_conditions: Use weather file ambient temperature [0/1] + * options: None + * constraints: None + * required if: ?=0 + */ + SAM_EXPORT void SAM_GeothermalNoFin_GeoHourly_use_weather_file_conditions_nset(SAM_table ptr, double number, SAM_error *err); + + /** + * Set well_flow_rate: Production flow rate per well [kg/s] + * options: None + * constraints: None + * required if: * + */ + SAM_EXPORT void SAM_GeothermalNoFin_GeoHourly_well_flow_rate_nset(SAM_table ptr, double number, SAM_error *err); + + /** + * Set wet_bulb_temp: Wet Bulb Temperature [C] + * options: None + * constraints: None + * required if: * + */ + SAM_EXPORT void SAM_GeothermalNoFin_GeoHourly_wet_bulb_temp_nset(SAM_table ptr, double number, SAM_error *err); + + + // + // AdjustmentFactors parameters + // + + /** + * Set adjust_constant: Constant loss adjustment [%] + * options: 'adjust' and 'constant' separated by _ instead of : after SAM 2022.12.21 + * constraints: MAX=100 + * required if: ?=0 + */ + SAM_EXPORT void SAM_GeothermalNoFin_AdjustmentFactors_adjust_constant_nset(SAM_table ptr, double number, SAM_error *err); + + /** + * Set adjust_en_periods: Enable period-based adjustment factors [0/1] + * options: 'adjust' and 'en_periods' separated by _ instead of : after SAM 2022.12.21 + * constraints: BOOLEAN + * required if: ?=0 + */ + SAM_EXPORT void SAM_GeothermalNoFin_AdjustmentFactors_adjust_en_periods_nset(SAM_table ptr, double number, SAM_error *err); + + /** + * Set adjust_en_timeindex: Enable lifetime adjustment factors [0/1] + * options: 'adjust' and 'en_timeindex' separated by _ instead of : after SAM 2022.12.21 + * constraints: BOOLEAN + * required if: ?=0 + */ + SAM_EXPORT void SAM_GeothermalNoFin_AdjustmentFactors_adjust_en_timeindex_nset(SAM_table ptr, double number, SAM_error *err); + + /** + * Set adjust_periods: Period-based adjustment factors [%] + * options: Syntax: n x 3 matrix [ start, end, loss ]; Version upgrade: 'adjust' and 'periods' separated by _ instead of : after SAM 2022.12.21 + * constraints: COLS=3 + * required if: adjust_en_periods=1 + */ + SAM_EXPORT void SAM_GeothermalNoFin_AdjustmentFactors_adjust_periods_mset(SAM_table ptr, double* mat, int nrows, int ncols, SAM_error *err); + + /** + * Set adjust_timeindex: Lifetime adjustment factors [%] + * options: 'adjust' and 'timeindex' separated by _ instead of : after SAM 2022.12.21 + * constraints: None + * required if: adjust_en_timeindex=1 + */ + SAM_EXPORT void SAM_GeothermalNoFin_AdjustmentFactors_adjust_timeindex_aset(SAM_table ptr, double* arr, int length, SAM_error *err); + + + /** + * SystemControl Getters + */ + + SAM_EXPORT double SAM_GeothermalNoFin_SystemControl_sim_type_nget(SAM_table ptr, SAM_error *err); + + + /** + * FinancialModel Getters + */ + + SAM_EXPORT double SAM_GeothermalNoFin_FinancialModel_geo_financial_model_nget(SAM_table ptr, SAM_error *err); + + + /** + * GeoHourly Getters + */ + + SAM_EXPORT double SAM_GeothermalNoFin_GeoHourly_CT_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_GeothermalNoFin_GeoHourly_P_boil_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_GeothermalNoFin_GeoHourly_P_cond_min_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_GeothermalNoFin_GeoHourly_P_cond_ratio_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_GeothermalNoFin_GeoHourly_T_ITD_des_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_GeothermalNoFin_GeoHourly_T_amb_des_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_GeothermalNoFin_GeoHourly_T_approach_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_GeothermalNoFin_GeoHourly_T_htf_cold_ref_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_GeothermalNoFin_GeoHourly_allow_reservoir_replacements_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_GeothermalNoFin_GeoHourly_ambient_pressure_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_GeothermalNoFin_GeoHourly_analysis_type_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_GeothermalNoFin_GeoHourly_conversion_subtype_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_GeothermalNoFin_GeoHourly_conversion_type_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_GeothermalNoFin_GeoHourly_dT_cw_ref_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_GeothermalNoFin_GeoHourly_decline_type_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_GeothermalNoFin_GeoHourly_delta_pressure_equip_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_GeothermalNoFin_GeoHourly_drilling_success_rate_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_GeothermalNoFin_GeoHourly_dt_prod_well_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_GeothermalNoFin_GeoHourly_eta_ref_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_GeothermalNoFin_GeoHourly_excess_pressure_pump_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_GeothermalNoFin_GeoHourly_failed_prod_flow_ratio_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT const char* SAM_GeothermalNoFin_GeoHourly_file_name_sget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_GeothermalNoFin_GeoHourly_fracture_angle_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_GeothermalNoFin_GeoHourly_fracture_aperature_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_GeothermalNoFin_GeoHourly_fracture_length_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_GeothermalNoFin_GeoHourly_fracture_spacing_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_GeothermalNoFin_GeoHourly_fracture_width_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_GeothermalNoFin_GeoHourly_geotherm_cost_conf_num_wells_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_GeothermalNoFin_GeoHourly_geotherm_cost_confirm_wells_percent_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_GeothermalNoFin_GeoHourly_geotherm_cost_inj_cost_curve_welldiam_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_GeothermalNoFin_GeoHourly_geotherm_cost_inj_cost_curve_welltype_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_GeothermalNoFin_GeoHourly_geotherm_cost_inj_prod_well_ratio_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_GeothermalNoFin_GeoHourly_geotherm_cost_prod_cost_curve_welldiam_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_GeothermalNoFin_GeoHourly_geotherm_cost_prod_cost_curve_welltype_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_GeothermalNoFin_GeoHourly_hc_ctl1_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_GeothermalNoFin_GeoHourly_hc_ctl2_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_GeothermalNoFin_GeoHourly_hc_ctl3_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_GeothermalNoFin_GeoHourly_hc_ctl4_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_GeothermalNoFin_GeoHourly_hc_ctl5_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_GeothermalNoFin_GeoHourly_hc_ctl6_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_GeothermalNoFin_GeoHourly_hc_ctl7_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_GeothermalNoFin_GeoHourly_hc_ctl8_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_GeothermalNoFin_GeoHourly_hc_ctl9_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_GeothermalNoFin_GeoHourly_hr_pl_nlev_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT const char* SAM_GeothermalNoFin_GeoHourly_hybrid_dispatch_schedule_sget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_GeothermalNoFin_GeoHourly_inj_prod_well_distance_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_GeothermalNoFin_GeoHourly_injectivity_index_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_GeothermalNoFin_GeoHourly_model_choice_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_GeothermalNoFin_GeoHourly_nameplate_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_GeothermalNoFin_GeoHourly_num_fractures_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_GeothermalNoFin_GeoHourly_num_wells_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_GeothermalNoFin_GeoHourly_pb_bd_frac_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_GeothermalNoFin_GeoHourly_plant_efficiency_input_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_GeothermalNoFin_GeoHourly_prod_well_choice_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_GeothermalNoFin_GeoHourly_pump_efficiency_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_GeothermalNoFin_GeoHourly_q_sby_frac_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_GeothermalNoFin_GeoHourly_reservoir_height_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double* SAM_GeothermalNoFin_GeoHourly_reservoir_model_inputs_mget(SAM_table ptr, int* nrows, int* ncols, SAM_error *err); + + SAM_EXPORT double SAM_GeothermalNoFin_GeoHourly_reservoir_permeability_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_GeothermalNoFin_GeoHourly_reservoir_pressure_change_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_GeothermalNoFin_GeoHourly_reservoir_pressure_change_type_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_GeothermalNoFin_GeoHourly_reservoir_width_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_GeothermalNoFin_GeoHourly_resource_depth_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_GeothermalNoFin_GeoHourly_resource_potential_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_GeothermalNoFin_GeoHourly_resource_temp_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_GeothermalNoFin_GeoHourly_resource_type_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_GeothermalNoFin_GeoHourly_rock_density_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_GeothermalNoFin_GeoHourly_rock_specific_heat_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_GeothermalNoFin_GeoHourly_rock_thermal_conductivity_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_GeothermalNoFin_GeoHourly_specified_pump_work_amount_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_GeothermalNoFin_GeoHourly_specify_pump_work_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_GeothermalNoFin_GeoHourly_start_day_of_year_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_GeothermalNoFin_GeoHourly_startup_frac_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_GeothermalNoFin_GeoHourly_startup_time_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_GeothermalNoFin_GeoHourly_stim_success_rate_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_GeothermalNoFin_GeoHourly_stimulation_type_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_GeothermalNoFin_GeoHourly_subsurface_water_loss_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_GeothermalNoFin_GeoHourly_temp_decline_max_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_GeothermalNoFin_GeoHourly_temp_decline_rate_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_GeothermalNoFin_GeoHourly_use_weather_file_conditions_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_GeothermalNoFin_GeoHourly_well_flow_rate_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_GeothermalNoFin_GeoHourly_wet_bulb_temp_nget(SAM_table ptr, SAM_error *err); + + + /** + * AdjustmentFactors Getters + */ + + SAM_EXPORT double SAM_GeothermalNoFin_AdjustmentFactors_adjust_constant_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_GeothermalNoFin_AdjustmentFactors_adjust_en_periods_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_GeothermalNoFin_AdjustmentFactors_adjust_en_timeindex_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double* SAM_GeothermalNoFin_AdjustmentFactors_adjust_periods_mget(SAM_table ptr, int* nrows, int* ncols, SAM_error *err); + + SAM_EXPORT double* SAM_GeothermalNoFin_AdjustmentFactors_adjust_timeindex_aget(SAM_table ptr, int* length, SAM_error *err); + + + /** + * Outputs Getters + */ + + SAM_EXPORT double SAM_GeothermalNoFin_Outputs_GF_flowrate_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_GeothermalNoFin_Outputs_annual_energy_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double* SAM_GeothermalNoFin_Outputs_annual_energy_distribution_time_mget(SAM_table ptr, int* nrows, int* ncols, SAM_error *err); + + SAM_EXPORT double SAM_GeothermalNoFin_Outputs_bottom_hole_pressure_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_GeothermalNoFin_Outputs_brine_effectiveness_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_GeothermalNoFin_Outputs_capacity_factor_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_GeothermalNoFin_Outputs_condensate_pump_power_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_GeothermalNoFin_Outputs_cp_battery_nameplate_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_GeothermalNoFin_Outputs_cp_system_nameplate_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_GeothermalNoFin_Outputs_cw_pump_head_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_GeothermalNoFin_Outputs_cw_pump_work_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_GeothermalNoFin_Outputs_cwflow_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double* SAM_GeothermalNoFin_Outputs_degradation_aget(SAM_table ptr, int* length, SAM_error *err); + + SAM_EXPORT double SAM_GeothermalNoFin_Outputs_design_temp_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_GeothermalNoFin_Outputs_dt_rock_well_head_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_GeothermalNoFin_Outputs_eff_secondlaw_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_GeothermalNoFin_Outputs_first_year_output_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_GeothermalNoFin_Outputs_flash_count_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double* SAM_GeothermalNoFin_Outputs_gen_aget(SAM_table ptr, int* length, SAM_error *err); + + SAM_EXPORT double SAM_GeothermalNoFin_Outputs_geothermal_analysis_period_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_GeothermalNoFin_Outputs_gross_cost_output_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_GeothermalNoFin_Outputs_gross_output_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_GeothermalNoFin_Outputs_hp_flash_pressure_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_GeothermalNoFin_Outputs_inj_pump_hp_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_GeothermalNoFin_Outputs_kwh_per_kw_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_GeothermalNoFin_Outputs_lifetime_output_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_GeothermalNoFin_Outputs_lp_flash_pressure_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_GeothermalNoFin_Outputs_max_brine_effectiveness_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double* SAM_GeothermalNoFin_Outputs_monthly_energy_aget(SAM_table ptr, int* length, SAM_error *err); + + SAM_EXPORT double* SAM_GeothermalNoFin_Outputs_monthly_energy_lifetime_aget(SAM_table ptr, int* length, SAM_error *err); + + SAM_EXPORT double* SAM_GeothermalNoFin_Outputs_monthly_power_aget(SAM_table ptr, int* length, SAM_error *err); + + SAM_EXPORT double* SAM_GeothermalNoFin_Outputs_monthly_resource_temperature_aget(SAM_table ptr, int* length, SAM_error *err); + + SAM_EXPORT double SAM_GeothermalNoFin_Outputs_ncg_condensate_pump_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_GeothermalNoFin_Outputs_net_plant_output_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_GeothermalNoFin_Outputs_num_confirm_wells_to_production_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_GeothermalNoFin_Outputs_num_wells_getem_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_GeothermalNoFin_Outputs_num_wells_getem_inj_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_GeothermalNoFin_Outputs_num_wells_getem_inj_drilled_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_GeothermalNoFin_Outputs_num_wells_getem_output_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_GeothermalNoFin_Outputs_num_wells_getem_prod_drilled_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_GeothermalNoFin_Outputs_num_wells_getem_prod_failed_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_GeothermalNoFin_Outputs_plant_brine_eff_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_GeothermalNoFin_Outputs_pressure_ratio_1_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_GeothermalNoFin_Outputs_pressure_ratio_2_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_GeothermalNoFin_Outputs_pressure_ratio_3_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_GeothermalNoFin_Outputs_pump_depth_ft_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_GeothermalNoFin_Outputs_pump_hp_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_GeothermalNoFin_Outputs_pump_size_hp_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_GeothermalNoFin_Outputs_pump_watthr_per_lb_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_GeothermalNoFin_Outputs_pump_work_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_GeothermalNoFin_Outputs_pumpwork_inj_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_GeothermalNoFin_Outputs_pumpwork_prod_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_GeothermalNoFin_Outputs_qCondenser_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_GeothermalNoFin_Outputs_qRejectByStage_1_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_GeothermalNoFin_Outputs_qRejectByStage_2_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_GeothermalNoFin_Outputs_qRejectByStage_3_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_GeothermalNoFin_Outputs_qRejectTotal_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_GeothermalNoFin_Outputs_reservoir_avg_temp_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_GeothermalNoFin_Outputs_reservoir_pressure_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_GeothermalNoFin_Outputs_spec_vol_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_GeothermalNoFin_Outputs_spec_vol_lp_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_GeothermalNoFin_Outputs_system_capacity_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double* SAM_GeothermalNoFin_Outputs_system_lifetime_recapitalize_aget(SAM_table ptr, int* length, SAM_error *err); + + SAM_EXPORT double SAM_GeothermalNoFin_Outputs_system_use_lifetime_output_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_GeothermalNoFin_Outputs_system_use_recapitalization_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double* SAM_GeothermalNoFin_Outputs_timestep_dry_bulb_aget(SAM_table ptr, int* length, SAM_error *err); + + SAM_EXPORT double* SAM_GeothermalNoFin_Outputs_timestep_pressure_aget(SAM_table ptr, int* length, SAM_error *err); + + SAM_EXPORT double* SAM_GeothermalNoFin_Outputs_timestep_resource_temperature_aget(SAM_table ptr, int* length, SAM_error *err); + + SAM_EXPORT double* SAM_GeothermalNoFin_Outputs_timestep_test_values_aget(SAM_table ptr, int* length, SAM_error *err); + + SAM_EXPORT double* SAM_GeothermalNoFin_Outputs_timestep_wet_bulb_aget(SAM_table ptr, int* length, SAM_error *err); + + SAM_EXPORT double SAM_GeothermalNoFin_Outputs_v_stage_1_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_GeothermalNoFin_Outputs_v_stage_2_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_GeothermalNoFin_Outputs_v_stage_3_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_GeothermalNoFin_Outputs_x_hp_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_GeothermalNoFin_Outputs_x_lp_nget(SAM_table ptr, SAM_error *err); + +#ifdef __cplusplus +} /* end of extern "C" { */ +#endif + +#endif \ No newline at end of file diff --git a/api/include/SAM_LcoefcrElectricity.h b/api/include/SAM_LcoefcrElectricity.h new file mode 100644 index 0000000000..16ea636880 --- /dev/null +++ b/api/include/SAM_LcoefcrElectricity.h @@ -0,0 +1,240 @@ +#ifndef SAM_LCOEFCRELECTRICITY_H_ +#define SAM_LCOEFCRELECTRICITY_H_ + +#include "visibility.h" +#include "SAM_api.h" + + +#include +#ifdef __cplusplus +extern "C" +{ +#endif + + // + // LcoefcrElectricity Technology Model + // + + /** + * Create a LcoefcrElectricity variable table. + * @param def: the set of financial model-dependent defaults to use (None, Residential, ...) + * @param[in,out] err: a pointer to an error object + */ + + SAM_EXPORT typedef void * SAM_LcoefcrElectricity; + + /// verbosity level 0 or 1. Returns 1 on success + SAM_EXPORT int SAM_LcoefcrElectricity_execute(SAM_table data, int verbosity, SAM_error* err); + + + // + // SystemControl parameters + // + + /** + * Set sim_type: 1 (default): timeseries, 2: design only + * options: None + * constraints: None + * required if: ?=1 + */ + SAM_EXPORT void SAM_LcoefcrElectricity_SystemControl_sim_type_nset(SAM_table ptr, double number, SAM_error *err); + + + // + // SimpleLCOE parameters + // + + /** + * Set annual_energy: Annual energy production [kWh] + * options: None + * constraints: None + * required if: sim_type=1 + */ + SAM_EXPORT void SAM_LcoefcrElectricity_SimpleLCOE_annual_energy_nset(SAM_table ptr, double number, SAM_error *err); + + /** + * Set c_construction_cost: Construction cost schedule [%] + * options: None + * constraints: None + * required if: ui_fcr_input_option=1 + */ + SAM_EXPORT void SAM_LcoefcrElectricity_SimpleLCOE_c_construction_cost_aset(SAM_table ptr, double* arr, int length, SAM_error *err); + + /** + * Set c_construction_interest: Nominal construction interest rate [%] + * options: None + * constraints: None + * required if: ui_fcr_input_option=1 + */ + SAM_EXPORT void SAM_LcoefcrElectricity_SimpleLCOE_c_construction_interest_nset(SAM_table ptr, double number, SAM_error *err); + + /** + * Set c_debt_percent: Project term debt (% of capital) [%] + * options: None + * constraints: None + * required if: ui_fcr_input_option=1 + */ + SAM_EXPORT void SAM_LcoefcrElectricity_SimpleLCOE_c_debt_percent_nset(SAM_table ptr, double number, SAM_error *err); + + /** + * Set c_depreciation_schedule: Depreciation schedule [%] + * options: None + * constraints: None + * required if: ui_fcr_input_option=1 + */ + SAM_EXPORT void SAM_LcoefcrElectricity_SimpleLCOE_c_depreciation_schedule_aset(SAM_table ptr, double* arr, int length, SAM_error *err); + + /** + * Set c_equity_return: IRR (nominal) [%] + * options: None + * constraints: None + * required if: ui_fcr_input_option=1 + */ + SAM_EXPORT void SAM_LcoefcrElectricity_SimpleLCOE_c_equity_return_nset(SAM_table ptr, double number, SAM_error *err); + + /** + * Set c_inflation: Input fixed charge rate [%] + * options: None + * constraints: None + * required if: ui_fcr_input_option=1 + */ + SAM_EXPORT void SAM_LcoefcrElectricity_SimpleLCOE_c_inflation_nset(SAM_table ptr, double number, SAM_error *err); + + /** + * Set c_lifetime: Analysis period [years] + * options: None + * constraints: None + * required if: ui_fcr_input_option=1 + */ + SAM_EXPORT void SAM_LcoefcrElectricity_SimpleLCOE_c_lifetime_nset(SAM_table ptr, double number, SAM_error *err); + + /** + * Set c_nominal_interest_rate: Nominal debt interest rate [%] + * options: None + * constraints: None + * required if: ui_fcr_input_option=1 + */ + SAM_EXPORT void SAM_LcoefcrElectricity_SimpleLCOE_c_nominal_interest_rate_nset(SAM_table ptr, double number, SAM_error *err); + + /** + * Set c_tax_rate: Effective tax rate [%] + * options: None + * constraints: None + * required if: ui_fcr_input_option=1 + */ + SAM_EXPORT void SAM_LcoefcrElectricity_SimpleLCOE_c_tax_rate_nset(SAM_table ptr, double number, SAM_error *err); + + /** + * Set fixed_operating_cost: Annual fixed operating cost [$] + * options: None + * constraints: None + * required if: sim_type=1 + */ + SAM_EXPORT void SAM_LcoefcrElectricity_SimpleLCOE_fixed_operating_cost_nset(SAM_table ptr, double number, SAM_error *err); + + /** + * Set ui_fcr_input_option: 0: fixed charge rate; 1: calculate + * options: None + * constraints: None + * required if: * + */ + SAM_EXPORT void SAM_LcoefcrElectricity_SimpleLCOE_ui_fcr_input_option_nset(SAM_table ptr, double number, SAM_error *err); + + /** + * Set ui_fixed_charge_rate: Input fixed charge rate + * options: None + * constraints: None + * required if: ui_fcr_input_option=0 + */ + SAM_EXPORT void SAM_LcoefcrElectricity_SimpleLCOE_ui_fixed_charge_rate_nset(SAM_table ptr, double number, SAM_error *err); + + /** + * Set variable_operating_cost: Annual variable operating cost [$/kWh] + * options: None + * constraints: None + * required if: sim_type=1 + */ + SAM_EXPORT void SAM_LcoefcrElectricity_SimpleLCOE_variable_operating_cost_nset(SAM_table ptr, double number, SAM_error *err); + + + // + // SystemCosts parameters + // + + /** + * Set total_installed_cost: Total installed cost [$] + * options: None + * constraints: None + * required if: sim_type=1 + */ + SAM_EXPORT void SAM_LcoefcrElectricity_SystemCosts_total_installed_cost_nset(SAM_table ptr, double number, SAM_error *err); + + + /** + * SystemControl Getters + */ + + SAM_EXPORT double SAM_LcoefcrElectricity_SystemControl_sim_type_nget(SAM_table ptr, SAM_error *err); + + + /** + * SimpleLCOE Getters + */ + + SAM_EXPORT double SAM_LcoefcrElectricity_SimpleLCOE_annual_energy_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double* SAM_LcoefcrElectricity_SimpleLCOE_c_construction_cost_aget(SAM_table ptr, int* length, SAM_error *err); + + SAM_EXPORT double SAM_LcoefcrElectricity_SimpleLCOE_c_construction_interest_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_LcoefcrElectricity_SimpleLCOE_c_debt_percent_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double* SAM_LcoefcrElectricity_SimpleLCOE_c_depreciation_schedule_aget(SAM_table ptr, int* length, SAM_error *err); + + SAM_EXPORT double SAM_LcoefcrElectricity_SimpleLCOE_c_equity_return_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_LcoefcrElectricity_SimpleLCOE_c_inflation_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_LcoefcrElectricity_SimpleLCOE_c_lifetime_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_LcoefcrElectricity_SimpleLCOE_c_nominal_interest_rate_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_LcoefcrElectricity_SimpleLCOE_c_tax_rate_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_LcoefcrElectricity_SimpleLCOE_fixed_operating_cost_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_LcoefcrElectricity_SimpleLCOE_ui_fcr_input_option_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_LcoefcrElectricity_SimpleLCOE_ui_fixed_charge_rate_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_LcoefcrElectricity_SimpleLCOE_variable_operating_cost_nget(SAM_table ptr, SAM_error *err); + + + /** + * SystemCosts Getters + */ + + SAM_EXPORT double SAM_LcoefcrElectricity_SystemCosts_total_installed_cost_nget(SAM_table ptr, SAM_error *err); + + + /** + * Outputs Getters + */ + + SAM_EXPORT double SAM_LcoefcrElectricity_Outputs_cfin_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_LcoefcrElectricity_Outputs_crf_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_LcoefcrElectricity_Outputs_fixed_charge_rate_calc_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_LcoefcrElectricity_Outputs_lcoe_fcr_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_LcoefcrElectricity_Outputs_pfin_nget(SAM_table ptr, SAM_error *err); + + SAM_EXPORT double SAM_LcoefcrElectricity_Outputs_wacc_nget(SAM_table ptr, SAM_error *err); + +#ifdef __cplusplus +} /* end of extern "C" { */ +#endif + +#endif \ No newline at end of file diff --git a/api/modules/SAM_CbConstructionFinancing.cpp b/api/modules/SAM_CbConstructionFinancing.cpp index 9b66bbda9b..dcb9ffe71b 100644 --- a/api/modules/SAM_CbConstructionFinancing.cpp +++ b/api/modules/SAM_CbConstructionFinancing.cpp @@ -14,12 +14,6 @@ SAM_EXPORT int SAM_CbConstructionFinancing_execute(SAM_table data, int verbosity return SAM_module_exec("cb_construction_financing", data, verbosity, err); } -SAM_EXPORT void SAM_CbConstructionFinancing_SystemCosts_total_installed_cost_nset(SAM_table ptr, double number, SAM_error *err){ - translateExceptions(err, [&]{ - ssc_data_set_number(ptr, "total_installed_cost", number); - }); -} - SAM_EXPORT void SAM_CbConstructionFinancing_FinancialParameters_const_per_interest_rate1_nset(SAM_table ptr, double number, SAM_error *err){ translateExceptions(err, [&]{ ssc_data_set_number(ptr, "const_per_interest_rate1", number); @@ -140,13 +134,10 @@ SAM_EXPORT void SAM_CbConstructionFinancing_FinancialParameters_const_per_upfron }); } -SAM_EXPORT double SAM_CbConstructionFinancing_SystemCosts_total_installed_cost_nget(SAM_table ptr, SAM_error *err){ - double result; +SAM_EXPORT void SAM_CbConstructionFinancing_SystemCosts_total_installed_cost_nset(SAM_table ptr, double number, SAM_error *err){ translateExceptions(err, [&]{ - if (!ssc_data_get_number(ptr, "total_installed_cost", &result)) - make_access_error("SAM_CbConstructionFinancing", "total_installed_cost"); + ssc_data_set_number(ptr, "total_installed_cost", number); }); - return result; } SAM_EXPORT double SAM_CbConstructionFinancing_FinancialParameters_const_per_interest_rate1_nget(SAM_table ptr, SAM_error *err){ @@ -329,6 +320,15 @@ SAM_EXPORT double SAM_CbConstructionFinancing_FinancialParameters_const_per_upfr return result; } +SAM_EXPORT double SAM_CbConstructionFinancing_SystemCosts_total_installed_cost_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "total_installed_cost", &result)) + make_access_error("SAM_CbConstructionFinancing", "total_installed_cost"); + }); + return result; +} + SAM_EXPORT double SAM_CbConstructionFinancing_Outputs_const_per_interest1_nget(SAM_table ptr, SAM_error *err){ double result; translateExceptions(err, [&]{ diff --git a/api/modules/SAM_Geothermal.cpp b/api/modules/SAM_Geothermal.cpp index becbc9c223..95103e0408 100644 --- a/api/modules/SAM_Geothermal.cpp +++ b/api/modules/SAM_Geothermal.cpp @@ -14,15 +14,21 @@ SAM_EXPORT int SAM_Geothermal_execute(SAM_table data, int verbosity, SAM_error* return SAM_module_exec("geothermal", data, verbosity, err); } -SAM_EXPORT void SAM_Geothermal_GeoHourly_CT_nset(SAM_table ptr, double number, SAM_error *err){ +SAM_EXPORT void SAM_Geothermal_SystemControl_sim_type_nset(SAM_table ptr, double number, SAM_error *err){ translateExceptions(err, [&]{ - ssc_data_set_number(ptr, "CT", number); + ssc_data_set_number(ptr, "sim_type", number); + }); +} + +SAM_EXPORT void SAM_Geothermal_FinancialModel_geo_financial_model_nset(SAM_table ptr, double number, SAM_error *err){ + translateExceptions(err, [&]{ + ssc_data_set_number(ptr, "geo_financial_model", number); }); } -SAM_EXPORT void SAM_Geothermal_GeoHourly_HTF_nset(SAM_table ptr, double number, SAM_error *err){ +SAM_EXPORT void SAM_Geothermal_GeoHourly_CT_nset(SAM_table ptr, double number, SAM_error *err){ translateExceptions(err, [&]{ - ssc_data_set_number(ptr, "HTF", number); + ssc_data_set_number(ptr, "CT", number); }); } @@ -68,12 +74,6 @@ SAM_EXPORT void SAM_Geothermal_GeoHourly_T_htf_cold_ref_nset(SAM_table ptr, doub }); } -SAM_EXPORT void SAM_Geothermal_GeoHourly_T_htf_hot_ref_nset(SAM_table ptr, double number, SAM_error *err){ - translateExceptions(err, [&]{ - ssc_data_set_number(ptr, "T_htf_hot_ref", number); - }); -} - SAM_EXPORT void SAM_Geothermal_GeoHourly_allow_reservoir_replacements_nset(SAM_table ptr, double number, SAM_error *err){ translateExceptions(err, [&]{ ssc_data_set_number(ptr, "allow_reservoir_replacements", number); @@ -92,6 +92,12 @@ SAM_EXPORT void SAM_Geothermal_GeoHourly_analysis_type_nset(SAM_table ptr, doubl }); } +SAM_EXPORT void SAM_Geothermal_GeoHourly_calc_drill_costs_nset(SAM_table ptr, double number, SAM_error *err){ + translateExceptions(err, [&]{ + ssc_data_set_number(ptr, "calc_drill_costs", number); + }); +} + SAM_EXPORT void SAM_Geothermal_GeoHourly_conversion_subtype_nset(SAM_table ptr, double number, SAM_error *err){ translateExceptions(err, [&]{ ssc_data_set_number(ptr, "conversion_subtype", number); @@ -122,12 +128,6 @@ SAM_EXPORT void SAM_Geothermal_GeoHourly_delta_pressure_equip_nset(SAM_table ptr }); } -SAM_EXPORT void SAM_Geothermal_GeoHourly_design_temp_nset(SAM_table ptr, double number, SAM_error *err){ - translateExceptions(err, [&]{ - ssc_data_set_number(ptr, "design_temp", number); - }); -} - SAM_EXPORT void SAM_Geothermal_GeoHourly_drilling_success_rate_nset(SAM_table ptr, double number, SAM_error *err){ translateExceptions(err, [&]{ ssc_data_set_number(ptr, "drilling_success_rate", number); @@ -152,12 +152,6 @@ SAM_EXPORT void SAM_Geothermal_GeoHourly_excess_pressure_pump_nset(SAM_table ptr }); } -SAM_EXPORT void SAM_Geothermal_GeoHourly_exploration_wells_production_nset(SAM_table ptr, double number, SAM_error *err){ - translateExceptions(err, [&]{ - ssc_data_set_number(ptr, "exploration_wells_production", number); - }); -} - SAM_EXPORT void SAM_Geothermal_GeoHourly_failed_prod_flow_ratio_nset(SAM_table ptr, double number, SAM_error *err){ translateExceptions(err, [&]{ ssc_data_set_number(ptr, "failed_prod_flow_ratio", number); @@ -200,6 +194,102 @@ SAM_EXPORT void SAM_Geothermal_GeoHourly_fracture_width_nset(SAM_table ptr, doub }); } +SAM_EXPORT void SAM_Geothermal_GeoHourly_geotherm_cost_conf_multiplier_nset(SAM_table ptr, double number, SAM_error *err){ + translateExceptions(err, [&]{ + ssc_data_set_number(ptr, "geotherm.cost.conf_multiplier", number); + }); +} + +SAM_EXPORT void SAM_Geothermal_GeoHourly_geotherm_cost_conf_non_drill_nset(SAM_table ptr, double number, SAM_error *err){ + translateExceptions(err, [&]{ + ssc_data_set_number(ptr, "geotherm.cost.conf_non_drill", number); + }); +} + +SAM_EXPORT void SAM_Geothermal_GeoHourly_geotherm_cost_conf_num_wells_nset(SAM_table ptr, double number, SAM_error *err){ + translateExceptions(err, [&]{ + ssc_data_set_number(ptr, "geotherm.cost.conf_num_wells", number); + }); +} + +SAM_EXPORT void SAM_Geothermal_GeoHourly_geotherm_cost_confirm_wells_percent_nset(SAM_table ptr, double number, SAM_error *err){ + translateExceptions(err, [&]{ + ssc_data_set_number(ptr, "geotherm.cost.confirm_wells_percent", number); + }); +} + +SAM_EXPORT void SAM_Geothermal_GeoHourly_geotherm_cost_contingency_percent_nset(SAM_table ptr, double number, SAM_error *err){ + translateExceptions(err, [&]{ + ssc_data_set_number(ptr, "geotherm.cost.contingency_percent", number); + }); +} + +SAM_EXPORT void SAM_Geothermal_GeoHourly_geotherm_cost_drilling_amount_specified_nset(SAM_table ptr, double number, SAM_error *err){ + translateExceptions(err, [&]{ + ssc_data_set_number(ptr, "geotherm.cost.drilling.amount_specified", number); + }); +} + +SAM_EXPORT void SAM_Geothermal_GeoHourly_geotherm_cost_drilling_calc_nset(SAM_table ptr, double number, SAM_error *err){ + translateExceptions(err, [&]{ + ssc_data_set_number(ptr, "geotherm.cost.drilling.calc", number); + }); +} + +SAM_EXPORT void SAM_Geothermal_GeoHourly_geotherm_cost_epc_fixed_nset(SAM_table ptr, double number, SAM_error *err){ + translateExceptions(err, [&]{ + ssc_data_set_number(ptr, "geotherm.cost.epc.fixed", number); + }); +} + +SAM_EXPORT void SAM_Geothermal_GeoHourly_geotherm_cost_epc_percent_nset(SAM_table ptr, double number, SAM_error *err){ + translateExceptions(err, [&]{ + ssc_data_set_number(ptr, "geotherm.cost.epc.percent", number); + }); +} + +SAM_EXPORT void SAM_Geothermal_GeoHourly_geotherm_cost_expl_lump_sum_nset(SAM_table ptr, double number, SAM_error *err){ + translateExceptions(err, [&]{ + ssc_data_set_number(ptr, "geotherm.cost.expl_lump_sum", number); + }); +} + +SAM_EXPORT void SAM_Geothermal_GeoHourly_geotherm_cost_expl_multiplier_nset(SAM_table ptr, double number, SAM_error *err){ + translateExceptions(err, [&]{ + ssc_data_set_number(ptr, "geotherm.cost.expl_multiplier", number); + }); +} + +SAM_EXPORT void SAM_Geothermal_GeoHourly_geotherm_cost_expl_non_drill_nset(SAM_table ptr, double number, SAM_error *err){ + translateExceptions(err, [&]{ + ssc_data_set_number(ptr, "geotherm.cost.expl_non_drill", number); + }); +} + +SAM_EXPORT void SAM_Geothermal_GeoHourly_geotherm_cost_expl_num_wells_nset(SAM_table ptr, double number, SAM_error *err){ + translateExceptions(err, [&]{ + ssc_data_set_number(ptr, "geotherm.cost.expl_num_wells", number); + }); +} + +SAM_EXPORT void SAM_Geothermal_GeoHourly_geotherm_cost_indirect_amount_specified_nset(SAM_table ptr, double number, SAM_error *err){ + translateExceptions(err, [&]{ + ssc_data_set_number(ptr, "geotherm.cost.indirect.amount_specified", number); + }); +} + +SAM_EXPORT void SAM_Geothermal_GeoHourly_geotherm_cost_indirect_calc_nset(SAM_table ptr, double number, SAM_error *err){ + translateExceptions(err, [&]{ + ssc_data_set_number(ptr, "geotherm.cost.indirect.calc", number); + }); +} + +SAM_EXPORT void SAM_Geothermal_GeoHourly_geotherm_cost_inj_cost_curve_nset(SAM_table ptr, double number, SAM_error *err){ + translateExceptions(err, [&]{ + ssc_data_set_number(ptr, "geotherm.cost.inj_cost_curve", number); + }); +} + SAM_EXPORT void SAM_Geothermal_GeoHourly_geotherm_cost_inj_cost_curve_welldiam_nset(SAM_table ptr, double number, SAM_error *err){ translateExceptions(err, [&]{ ssc_data_set_number(ptr, "geotherm.cost.inj_cost_curve_welldiam", number); @@ -218,6 +308,42 @@ SAM_EXPORT void SAM_Geothermal_GeoHourly_geotherm_cost_inj_prod_well_ratio_nset( }); } +SAM_EXPORT void SAM_Geothermal_GeoHourly_geotherm_cost_plant_auto_estimate_nset(SAM_table ptr, double number, SAM_error *err){ + translateExceptions(err, [&]{ + ssc_data_set_number(ptr, "geotherm.cost.plant_auto_estimate", number); + }); +} + +SAM_EXPORT void SAM_Geothermal_GeoHourly_geotherm_cost_plant_per_kW_input_nset(SAM_table ptr, double number, SAM_error *err){ + translateExceptions(err, [&]{ + ssc_data_set_number(ptr, "geotherm.cost.plant_per_kW_input", number); + }); +} + +SAM_EXPORT void SAM_Geothermal_GeoHourly_geotherm_cost_plant_total_calc_nset(SAM_table ptr, double number, SAM_error *err){ + translateExceptions(err, [&]{ + ssc_data_set_number(ptr, "geotherm.cost.plant_total.calc", number); + }); +} + +SAM_EXPORT void SAM_Geothermal_GeoHourly_geotherm_cost_plm_fixed_nset(SAM_table ptr, double number, SAM_error *err){ + translateExceptions(err, [&]{ + ssc_data_set_number(ptr, "geotherm.cost.plm.fixed", number); + }); +} + +SAM_EXPORT void SAM_Geothermal_GeoHourly_geotherm_cost_plm_percent_nset(SAM_table ptr, double number, SAM_error *err){ + translateExceptions(err, [&]{ + ssc_data_set_number(ptr, "geotherm.cost.plm.percent", number); + }); +} + +SAM_EXPORT void SAM_Geothermal_GeoHourly_geotherm_cost_prod_cost_curve_nset(SAM_table ptr, double number, SAM_error *err){ + translateExceptions(err, [&]{ + ssc_data_set_number(ptr, "geotherm.cost.prod_cost_curve", number); + }); +} + SAM_EXPORT void SAM_Geothermal_GeoHourly_geotherm_cost_prod_cost_curve_welldiam_nset(SAM_table ptr, double number, SAM_error *err){ translateExceptions(err, [&]{ ssc_data_set_number(ptr, "geotherm.cost.prod_cost_curve_welldiam", number); @@ -230,9 +356,63 @@ SAM_EXPORT void SAM_Geothermal_GeoHourly_geotherm_cost_prod_cost_curve_welltype_ }); } -SAM_EXPORT void SAM_Geothermal_GeoHourly_geothermal_analysis_period_nset(SAM_table ptr, double number, SAM_error *err){ +SAM_EXPORT void SAM_Geothermal_GeoHourly_geotherm_cost_prod_inj_non_drill_nset(SAM_table ptr, double number, SAM_error *err){ + translateExceptions(err, [&]{ + ssc_data_set_number(ptr, "geotherm.cost.prod_inj_non_drill", number); + }); +} + +SAM_EXPORT void SAM_Geothermal_GeoHourly_geotherm_cost_pump_casing_cost_nset(SAM_table ptr, double number, SAM_error *err){ + translateExceptions(err, [&]{ + ssc_data_set_number(ptr, "geotherm.cost.pump_casing_cost", number); + }); +} + +SAM_EXPORT void SAM_Geothermal_GeoHourly_geotherm_cost_pump_fixed_nset(SAM_table ptr, double number, SAM_error *err){ + translateExceptions(err, [&]{ + ssc_data_set_number(ptr, "geotherm.cost.pump_fixed", number); + }); +} + +SAM_EXPORT void SAM_Geothermal_GeoHourly_geotherm_cost_pump_per_foot_nset(SAM_table ptr, double number, SAM_error *err){ + translateExceptions(err, [&]{ + ssc_data_set_number(ptr, "geotherm.cost.pump_per_foot", number); + }); +} + +SAM_EXPORT void SAM_Geothermal_GeoHourly_geotherm_cost_pumping_amount_specified_nset(SAM_table ptr, double number, SAM_error *err){ translateExceptions(err, [&]{ - ssc_data_set_number(ptr, "geothermal_analysis_period", number); + ssc_data_set_number(ptr, "geotherm.cost.pumping.amount_specified", number); + }); +} + +SAM_EXPORT void SAM_Geothermal_GeoHourly_geotherm_cost_pumping_calc_nset(SAM_table ptr, double number, SAM_error *err){ + translateExceptions(err, [&]{ + ssc_data_set_number(ptr, "geotherm.cost.pumping.calc", number); + }); +} + +SAM_EXPORT void SAM_Geothermal_GeoHourly_geotherm_cost_recap_specified_nset(SAM_table ptr, double number, SAM_error *err){ + translateExceptions(err, [&]{ + ssc_data_set_number(ptr, "geotherm.cost.recap_specified", number); + }); +} + +SAM_EXPORT void SAM_Geothermal_GeoHourly_geotherm_cost_recap_use_calc_nset(SAM_table ptr, double number, SAM_error *err){ + translateExceptions(err, [&]{ + ssc_data_set_number(ptr, "geotherm.cost.recap_use_calc", number); + }); +} + +SAM_EXPORT void SAM_Geothermal_GeoHourly_geotherm_cost_sales_tax_percent_nset(SAM_table ptr, double number, SAM_error *err){ + translateExceptions(err, [&]{ + ssc_data_set_number(ptr, "geotherm.cost.sales_tax.percent", number); + }); +} + +SAM_EXPORT void SAM_Geothermal_GeoHourly_geotherm_cost_stim_non_drill_nset(SAM_table ptr, double number, SAM_error *err){ + translateExceptions(err, [&]{ + ssc_data_set_number(ptr, "geotherm.cost.stim_non_drill", number); }); } @@ -338,12 +518,6 @@ SAM_EXPORT void SAM_Geothermal_GeoHourly_num_wells_nset(SAM_table ptr, double nu }); } -SAM_EXPORT void SAM_Geothermal_GeoHourly_num_wells_getem_nset(SAM_table ptr, double number, SAM_error *err){ - translateExceptions(err, [&]{ - ssc_data_set_number(ptr, "num_wells_getem", number); - }); -} - SAM_EXPORT void SAM_Geothermal_GeoHourly_pb_bd_frac_nset(SAM_table ptr, double number, SAM_error *err){ translateExceptions(err, [&]{ ssc_data_set_number(ptr, "pb_bd_frac", number); @@ -356,6 +530,12 @@ SAM_EXPORT void SAM_Geothermal_GeoHourly_plant_efficiency_input_nset(SAM_table p }); } +SAM_EXPORT void SAM_Geothermal_GeoHourly_ppi_base_year_nset(SAM_table ptr, double number, SAM_error *err){ + translateExceptions(err, [&]{ + ssc_data_set_number(ptr, "ppi_base_year", number); + }); +} + SAM_EXPORT void SAM_Geothermal_GeoHourly_prod_well_choice_nset(SAM_table ptr, double number, SAM_error *err){ translateExceptions(err, [&]{ ssc_data_set_number(ptr, "prod_well_choice", number); @@ -452,6 +632,12 @@ SAM_EXPORT void SAM_Geothermal_GeoHourly_rock_thermal_conductivity_nset(SAM_tabl }); } +SAM_EXPORT void SAM_Geothermal_GeoHourly_sales_tax_rate_nset(SAM_table ptr, double number, SAM_error *err){ + translateExceptions(err, [&]{ + ssc_data_set_number(ptr, "sales_tax_rate", number); + }); +} + SAM_EXPORT void SAM_Geothermal_GeoHourly_specified_pump_work_amount_nset(SAM_table ptr, double number, SAM_error *err){ translateExceptions(err, [&]{ ssc_data_set_number(ptr, "specified_pump_work_amount", number); @@ -500,12 +686,6 @@ SAM_EXPORT void SAM_Geothermal_GeoHourly_subsurface_water_loss_nset(SAM_table pt }); } -SAM_EXPORT void SAM_Geothermal_GeoHourly_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_Geothermal_GeoHourly_temp_decline_max_nset(SAM_table ptr, double number, SAM_error *err){ translateExceptions(err, [&]{ ssc_data_set_number(ptr, "temp_decline_max", number); @@ -518,12 +698,6 @@ SAM_EXPORT void SAM_Geothermal_GeoHourly_temp_decline_rate_nset(SAM_table ptr, d }); } -SAM_EXPORT void SAM_Geothermal_GeoHourly_ui_calculations_only_nset(SAM_table ptr, double number, SAM_error *err){ - translateExceptions(err, [&]{ - ssc_data_set_number(ptr, "ui_calculations_only", number); - }); -} - SAM_EXPORT void SAM_Geothermal_GeoHourly_use_weather_file_conditions_nset(SAM_table ptr, double number, SAM_error *err){ translateExceptions(err, [&]{ ssc_data_set_number(ptr, "use_weather_file_conditions", number); @@ -572,175 +746,307 @@ SAM_EXPORT void SAM_Geothermal_AdjustmentFactors_adjust_timeindex_aset(SAM_table }); } -SAM_EXPORT double SAM_Geothermal_GeoHourly_CT_nget(SAM_table ptr, SAM_error *err){ - double result; +SAM_EXPORT void SAM_Geothermal_FinancialParameters_analysis_period_nset(SAM_table ptr, double number, SAM_error *err){ translateExceptions(err, [&]{ - if (!ssc_data_get_number(ptr, "CT", &result)) - make_access_error("SAM_Geothermal", "CT"); + ssc_data_set_number(ptr, "analysis_period", number); }); - return result; } -SAM_EXPORT double SAM_Geothermal_GeoHourly_HTF_nget(SAM_table ptr, SAM_error *err){ - double result; +SAM_EXPORT void SAM_Geothermal_Costs_geotherm_cost_plant_total_amount_specified_nset(SAM_table ptr, double number, SAM_error *err){ translateExceptions(err, [&]{ - if (!ssc_data_get_number(ptr, "HTF", &result)) - make_access_error("SAM_Geothermal", "HTF"); + ssc_data_set_number(ptr, "geotherm.cost.plant_total.amount_specified", number); }); - return result; } -SAM_EXPORT double SAM_Geothermal_GeoHourly_P_boil_nget(SAM_table ptr, SAM_error *err){ - double result; +SAM_EXPORT void SAM_Geothermal_FinancialParameters_const_per_interest_rate1_nset(SAM_table ptr, double number, SAM_error *err){ translateExceptions(err, [&]{ - if (!ssc_data_get_number(ptr, "P_boil", &result)) - make_access_error("SAM_Geothermal", "P_boil"); + ssc_data_set_number(ptr, "const_per_interest_rate1", number); }); - return result; } -SAM_EXPORT double SAM_Geothermal_GeoHourly_P_cond_min_nget(SAM_table ptr, SAM_error *err){ - double result; +SAM_EXPORT void SAM_Geothermal_FinancialParameters_const_per_interest_rate2_nset(SAM_table ptr, double number, SAM_error *err){ translateExceptions(err, [&]{ - if (!ssc_data_get_number(ptr, "P_cond_min", &result)) - make_access_error("SAM_Geothermal", "P_cond_min"); + ssc_data_set_number(ptr, "const_per_interest_rate2", number); }); - return result; } -SAM_EXPORT double SAM_Geothermal_GeoHourly_P_cond_ratio_nget(SAM_table ptr, SAM_error *err){ - double result; +SAM_EXPORT void SAM_Geothermal_FinancialParameters_const_per_interest_rate3_nset(SAM_table ptr, double number, SAM_error *err){ translateExceptions(err, [&]{ - if (!ssc_data_get_number(ptr, "P_cond_ratio", &result)) - make_access_error("SAM_Geothermal", "P_cond_ratio"); + ssc_data_set_number(ptr, "const_per_interest_rate3", number); }); - return result; } -SAM_EXPORT double SAM_Geothermal_GeoHourly_T_ITD_des_nget(SAM_table ptr, SAM_error *err){ - double result; +SAM_EXPORT void SAM_Geothermal_FinancialParameters_const_per_interest_rate4_nset(SAM_table ptr, double number, SAM_error *err){ translateExceptions(err, [&]{ - if (!ssc_data_get_number(ptr, "T_ITD_des", &result)) - make_access_error("SAM_Geothermal", "T_ITD_des"); + ssc_data_set_number(ptr, "const_per_interest_rate4", number); }); - return result; } -SAM_EXPORT double SAM_Geothermal_GeoHourly_T_amb_des_nget(SAM_table ptr, SAM_error *err){ - double result; +SAM_EXPORT void SAM_Geothermal_FinancialParameters_const_per_interest_rate5_nset(SAM_table ptr, double number, SAM_error *err){ translateExceptions(err, [&]{ - if (!ssc_data_get_number(ptr, "T_amb_des", &result)) - make_access_error("SAM_Geothermal", "T_amb_des"); + ssc_data_set_number(ptr, "const_per_interest_rate5", number); }); - return result; } -SAM_EXPORT double SAM_Geothermal_GeoHourly_T_approach_nget(SAM_table ptr, SAM_error *err){ - double result; +SAM_EXPORT void SAM_Geothermal_FinancialParameters_const_per_months1_nset(SAM_table ptr, double number, SAM_error *err){ translateExceptions(err, [&]{ - if (!ssc_data_get_number(ptr, "T_approach", &result)) - make_access_error("SAM_Geothermal", "T_approach"); + ssc_data_set_number(ptr, "const_per_months1", number); }); - return result; } -SAM_EXPORT double SAM_Geothermal_GeoHourly_T_htf_cold_ref_nget(SAM_table ptr, SAM_error *err){ - double result; +SAM_EXPORT void SAM_Geothermal_FinancialParameters_const_per_months2_nset(SAM_table ptr, double number, SAM_error *err){ translateExceptions(err, [&]{ - if (!ssc_data_get_number(ptr, "T_htf_cold_ref", &result)) - make_access_error("SAM_Geothermal", "T_htf_cold_ref"); + ssc_data_set_number(ptr, "const_per_months2", number); }); - return result; } -SAM_EXPORT double SAM_Geothermal_GeoHourly_T_htf_hot_ref_nget(SAM_table ptr, SAM_error *err){ - double result; +SAM_EXPORT void SAM_Geothermal_FinancialParameters_const_per_months3_nset(SAM_table ptr, double number, SAM_error *err){ translateExceptions(err, [&]{ - if (!ssc_data_get_number(ptr, "T_htf_hot_ref", &result)) - make_access_error("SAM_Geothermal", "T_htf_hot_ref"); + ssc_data_set_number(ptr, "const_per_months3", number); }); - return result; } -SAM_EXPORT double SAM_Geothermal_GeoHourly_allow_reservoir_replacements_nget(SAM_table ptr, SAM_error *err){ - double result; +SAM_EXPORT void SAM_Geothermal_FinancialParameters_const_per_months4_nset(SAM_table ptr, double number, SAM_error *err){ translateExceptions(err, [&]{ - if (!ssc_data_get_number(ptr, "allow_reservoir_replacements", &result)) - make_access_error("SAM_Geothermal", "allow_reservoir_replacements"); + ssc_data_set_number(ptr, "const_per_months4", number); }); - return result; } -SAM_EXPORT double SAM_Geothermal_GeoHourly_ambient_pressure_nget(SAM_table ptr, SAM_error *err){ - double result; +SAM_EXPORT void SAM_Geothermal_FinancialParameters_const_per_months5_nset(SAM_table ptr, double number, SAM_error *err){ translateExceptions(err, [&]{ - if (!ssc_data_get_number(ptr, "ambient_pressure", &result)) - make_access_error("SAM_Geothermal", "ambient_pressure"); + ssc_data_set_number(ptr, "const_per_months5", number); }); - return result; } -SAM_EXPORT double SAM_Geothermal_GeoHourly_analysis_type_nget(SAM_table ptr, SAM_error *err){ - double result; +SAM_EXPORT void SAM_Geothermal_FinancialParameters_const_per_percent1_nset(SAM_table ptr, double number, SAM_error *err){ translateExceptions(err, [&]{ - if (!ssc_data_get_number(ptr, "analysis_type", &result)) - make_access_error("SAM_Geothermal", "analysis_type"); + ssc_data_set_number(ptr, "const_per_percent1", number); }); - return result; } -SAM_EXPORT double SAM_Geothermal_GeoHourly_conversion_subtype_nget(SAM_table ptr, SAM_error *err){ - double result; +SAM_EXPORT void SAM_Geothermal_FinancialParameters_const_per_percent2_nset(SAM_table ptr, double number, SAM_error *err){ translateExceptions(err, [&]{ - if (!ssc_data_get_number(ptr, "conversion_subtype", &result)) - make_access_error("SAM_Geothermal", "conversion_subtype"); + ssc_data_set_number(ptr, "const_per_percent2", number); }); - return result; } -SAM_EXPORT double SAM_Geothermal_GeoHourly_conversion_type_nget(SAM_table ptr, SAM_error *err){ - double result; +SAM_EXPORT void SAM_Geothermal_FinancialParameters_const_per_percent3_nset(SAM_table ptr, double number, SAM_error *err){ translateExceptions(err, [&]{ - if (!ssc_data_get_number(ptr, "conversion_type", &result)) - make_access_error("SAM_Geothermal", "conversion_type"); + ssc_data_set_number(ptr, "const_per_percent3", number); }); - return result; } -SAM_EXPORT double SAM_Geothermal_GeoHourly_dT_cw_ref_nget(SAM_table ptr, SAM_error *err){ - double result; +SAM_EXPORT void SAM_Geothermal_FinancialParameters_const_per_percent4_nset(SAM_table ptr, double number, SAM_error *err){ translateExceptions(err, [&]{ - if (!ssc_data_get_number(ptr, "dT_cw_ref", &result)) - make_access_error("SAM_Geothermal", "dT_cw_ref"); + ssc_data_set_number(ptr, "const_per_percent4", number); }); - return result; } -SAM_EXPORT double SAM_Geothermal_GeoHourly_decline_type_nget(SAM_table ptr, SAM_error *err){ - double result; +SAM_EXPORT void SAM_Geothermal_FinancialParameters_const_per_percent5_nset(SAM_table ptr, double number, SAM_error *err){ translateExceptions(err, [&]{ - if (!ssc_data_get_number(ptr, "decline_type", &result)) - make_access_error("SAM_Geothermal", "decline_type"); + ssc_data_set_number(ptr, "const_per_percent5", number); }); - return result; } -SAM_EXPORT double SAM_Geothermal_GeoHourly_delta_pressure_equip_nget(SAM_table ptr, SAM_error *err){ - double result; +SAM_EXPORT void SAM_Geothermal_FinancialParameters_const_per_upfront_rate1_nset(SAM_table ptr, double number, SAM_error *err){ translateExceptions(err, [&]{ - if (!ssc_data_get_number(ptr, "delta_pressure_equip", &result)) - make_access_error("SAM_Geothermal", "delta_pressure_equip"); + ssc_data_set_number(ptr, "const_per_upfront_rate1", number); }); - return result; } -SAM_EXPORT double SAM_Geothermal_GeoHourly_design_temp_nget(SAM_table ptr, SAM_error *err){ - double result; +SAM_EXPORT void SAM_Geothermal_FinancialParameters_const_per_upfront_rate2_nset(SAM_table ptr, double number, SAM_error *err){ translateExceptions(err, [&]{ - if (!ssc_data_get_number(ptr, "design_temp", &result)) - make_access_error("SAM_Geothermal", "design_temp"); + ssc_data_set_number(ptr, "const_per_upfront_rate2", number); }); - return result; +} + +SAM_EXPORT void SAM_Geothermal_FinancialParameters_const_per_upfront_rate3_nset(SAM_table ptr, double number, SAM_error *err){ + translateExceptions(err, [&]{ + ssc_data_set_number(ptr, "const_per_upfront_rate3", number); + }); +} + +SAM_EXPORT void SAM_Geothermal_FinancialParameters_const_per_upfront_rate4_nset(SAM_table ptr, double number, SAM_error *err){ + translateExceptions(err, [&]{ + ssc_data_set_number(ptr, "const_per_upfront_rate4", number); + }); +} + +SAM_EXPORT void SAM_Geothermal_FinancialParameters_const_per_upfront_rate5_nset(SAM_table ptr, double number, SAM_error *err){ + translateExceptions(err, [&]{ + ssc_data_set_number(ptr, "const_per_upfront_rate5", number); + }); +} + +SAM_EXPORT double SAM_Geothermal_SystemControl_sim_type_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "sim_type", &result)) + make_access_error("SAM_Geothermal", "sim_type"); + }); + return result; +} + +SAM_EXPORT double SAM_Geothermal_FinancialModel_geo_financial_model_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "geo_financial_model", &result)) + make_access_error("SAM_Geothermal", "geo_financial_model"); + }); + return result; +} + +SAM_EXPORT double SAM_Geothermal_GeoHourly_CT_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "CT", &result)) + make_access_error("SAM_Geothermal", "CT"); + }); + return result; +} + +SAM_EXPORT double SAM_Geothermal_GeoHourly_P_boil_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "P_boil", &result)) + make_access_error("SAM_Geothermal", "P_boil"); + }); + return result; +} + +SAM_EXPORT double SAM_Geothermal_GeoHourly_P_cond_min_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "P_cond_min", &result)) + make_access_error("SAM_Geothermal", "P_cond_min"); + }); + return result; +} + +SAM_EXPORT double SAM_Geothermal_GeoHourly_P_cond_ratio_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "P_cond_ratio", &result)) + make_access_error("SAM_Geothermal", "P_cond_ratio"); + }); + return result; +} + +SAM_EXPORT double SAM_Geothermal_GeoHourly_T_ITD_des_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "T_ITD_des", &result)) + make_access_error("SAM_Geothermal", "T_ITD_des"); + }); + return result; +} + +SAM_EXPORT double SAM_Geothermal_GeoHourly_T_amb_des_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "T_amb_des", &result)) + make_access_error("SAM_Geothermal", "T_amb_des"); + }); + return result; +} + +SAM_EXPORT double SAM_Geothermal_GeoHourly_T_approach_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "T_approach", &result)) + make_access_error("SAM_Geothermal", "T_approach"); + }); + return result; +} + +SAM_EXPORT double SAM_Geothermal_GeoHourly_T_htf_cold_ref_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "T_htf_cold_ref", &result)) + make_access_error("SAM_Geothermal", "T_htf_cold_ref"); + }); + return result; +} + +SAM_EXPORT double SAM_Geothermal_GeoHourly_allow_reservoir_replacements_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "allow_reservoir_replacements", &result)) + make_access_error("SAM_Geothermal", "allow_reservoir_replacements"); + }); + return result; +} + +SAM_EXPORT double SAM_Geothermal_GeoHourly_ambient_pressure_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "ambient_pressure", &result)) + make_access_error("SAM_Geothermal", "ambient_pressure"); + }); + return result; +} + +SAM_EXPORT double SAM_Geothermal_GeoHourly_analysis_type_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "analysis_type", &result)) + make_access_error("SAM_Geothermal", "analysis_type"); + }); + return result; +} + +SAM_EXPORT double SAM_Geothermal_GeoHourly_calc_drill_costs_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "calc_drill_costs", &result)) + make_access_error("SAM_Geothermal", "calc_drill_costs"); + }); + return result; +} + +SAM_EXPORT double SAM_Geothermal_GeoHourly_conversion_subtype_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "conversion_subtype", &result)) + make_access_error("SAM_Geothermal", "conversion_subtype"); + }); + return result; +} + +SAM_EXPORT double SAM_Geothermal_GeoHourly_conversion_type_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "conversion_type", &result)) + make_access_error("SAM_Geothermal", "conversion_type"); + }); + return result; +} + +SAM_EXPORT double SAM_Geothermal_GeoHourly_dT_cw_ref_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "dT_cw_ref", &result)) + make_access_error("SAM_Geothermal", "dT_cw_ref"); + }); + return result; +} + +SAM_EXPORT double SAM_Geothermal_GeoHourly_decline_type_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "decline_type", &result)) + make_access_error("SAM_Geothermal", "decline_type"); + }); + return result; +} + +SAM_EXPORT double SAM_Geothermal_GeoHourly_delta_pressure_equip_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "delta_pressure_equip", &result)) + make_access_error("SAM_Geothermal", "delta_pressure_equip"); + }); + return result; } SAM_EXPORT double SAM_Geothermal_GeoHourly_drilling_success_rate_nget(SAM_table ptr, SAM_error *err){ @@ -779,15 +1085,6 @@ SAM_EXPORT double SAM_Geothermal_GeoHourly_excess_pressure_pump_nget(SAM_table p return result; } -SAM_EXPORT double SAM_Geothermal_GeoHourly_exploration_wells_production_nget(SAM_table ptr, SAM_error *err){ - double result; - translateExceptions(err, [&]{ - if (!ssc_data_get_number(ptr, "exploration_wells_production", &result)) - make_access_error("SAM_Geothermal", "exploration_wells_production"); - }); - return result; -} - SAM_EXPORT double SAM_Geothermal_GeoHourly_failed_prod_flow_ratio_nget(SAM_table ptr, SAM_error *err){ double result; translateExceptions(err, [&]{ @@ -852,737 +1149,1611 @@ SAM_EXPORT double SAM_Geothermal_GeoHourly_fracture_width_nget(SAM_table ptr, SA return result; } -SAM_EXPORT double SAM_Geothermal_GeoHourly_geotherm_cost_inj_cost_curve_welldiam_nget(SAM_table ptr, SAM_error *err){ +SAM_EXPORT double SAM_Geothermal_GeoHourly_geotherm_cost_conf_multiplier_nget(SAM_table ptr, SAM_error *err){ double result; translateExceptions(err, [&]{ - if (!ssc_data_get_number(ptr, "geotherm.cost.inj_cost_curve_welldiam", &result)) - make_access_error("SAM_Geothermal", "geotherm.cost.inj_cost_curve_welldiam"); + if (!ssc_data_get_number(ptr, "geotherm.cost.conf_multiplier", &result)) + make_access_error("SAM_Geothermal", "geotherm.cost.conf_multiplier"); }); return result; } -SAM_EXPORT double SAM_Geothermal_GeoHourly_geotherm_cost_inj_cost_curve_welltype_nget(SAM_table ptr, SAM_error *err){ +SAM_EXPORT double SAM_Geothermal_GeoHourly_geotherm_cost_conf_non_drill_nget(SAM_table ptr, SAM_error *err){ double result; translateExceptions(err, [&]{ - if (!ssc_data_get_number(ptr, "geotherm.cost.inj_cost_curve_welltype", &result)) - make_access_error("SAM_Geothermal", "geotherm.cost.inj_cost_curve_welltype"); + if (!ssc_data_get_number(ptr, "geotherm.cost.conf_non_drill", &result)) + make_access_error("SAM_Geothermal", "geotherm.cost.conf_non_drill"); }); return result; } -SAM_EXPORT double SAM_Geothermal_GeoHourly_geotherm_cost_inj_prod_well_ratio_nget(SAM_table ptr, SAM_error *err){ +SAM_EXPORT double SAM_Geothermal_GeoHourly_geotherm_cost_conf_num_wells_nget(SAM_table ptr, SAM_error *err){ double result; translateExceptions(err, [&]{ - if (!ssc_data_get_number(ptr, "geotherm.cost.inj_prod_well_ratio", &result)) - make_access_error("SAM_Geothermal", "geotherm.cost.inj_prod_well_ratio"); + if (!ssc_data_get_number(ptr, "geotherm.cost.conf_num_wells", &result)) + make_access_error("SAM_Geothermal", "geotherm.cost.conf_num_wells"); }); return result; } -SAM_EXPORT double SAM_Geothermal_GeoHourly_geotherm_cost_prod_cost_curve_welldiam_nget(SAM_table ptr, SAM_error *err){ +SAM_EXPORT double SAM_Geothermal_GeoHourly_geotherm_cost_confirm_wells_percent_nget(SAM_table ptr, SAM_error *err){ double result; translateExceptions(err, [&]{ - if (!ssc_data_get_number(ptr, "geotherm.cost.prod_cost_curve_welldiam", &result)) - make_access_error("SAM_Geothermal", "geotherm.cost.prod_cost_curve_welldiam"); + if (!ssc_data_get_number(ptr, "geotherm.cost.confirm_wells_percent", &result)) + make_access_error("SAM_Geothermal", "geotherm.cost.confirm_wells_percent"); }); return result; } -SAM_EXPORT double SAM_Geothermal_GeoHourly_geotherm_cost_prod_cost_curve_welltype_nget(SAM_table ptr, SAM_error *err){ +SAM_EXPORT double SAM_Geothermal_GeoHourly_geotherm_cost_contingency_percent_nget(SAM_table ptr, SAM_error *err){ double result; translateExceptions(err, [&]{ - if (!ssc_data_get_number(ptr, "geotherm.cost.prod_cost_curve_welltype", &result)) - make_access_error("SAM_Geothermal", "geotherm.cost.prod_cost_curve_welltype"); + if (!ssc_data_get_number(ptr, "geotherm.cost.contingency_percent", &result)) + make_access_error("SAM_Geothermal", "geotherm.cost.contingency_percent"); }); return result; } -SAM_EXPORT double SAM_Geothermal_GeoHourly_geothermal_analysis_period_nget(SAM_table ptr, SAM_error *err){ +SAM_EXPORT double SAM_Geothermal_GeoHourly_geotherm_cost_drilling_amount_specified_nget(SAM_table ptr, SAM_error *err){ double result; translateExceptions(err, [&]{ - if (!ssc_data_get_number(ptr, "geothermal_analysis_period", &result)) - make_access_error("SAM_Geothermal", "geothermal_analysis_period"); + if (!ssc_data_get_number(ptr, "geotherm.cost.drilling.amount_specified", &result)) + make_access_error("SAM_Geothermal", "geotherm.cost.drilling.amount_specified"); }); return result; } -SAM_EXPORT double SAM_Geothermal_GeoHourly_hc_ctl1_nget(SAM_table ptr, SAM_error *err){ +SAM_EXPORT double SAM_Geothermal_GeoHourly_geotherm_cost_drilling_calc_nget(SAM_table ptr, SAM_error *err){ double result; translateExceptions(err, [&]{ - if (!ssc_data_get_number(ptr, "hc_ctl1", &result)) - make_access_error("SAM_Geothermal", "hc_ctl1"); + if (!ssc_data_get_number(ptr, "geotherm.cost.drilling.calc", &result)) + make_access_error("SAM_Geothermal", "geotherm.cost.drilling.calc"); }); return result; } -SAM_EXPORT double SAM_Geothermal_GeoHourly_hc_ctl2_nget(SAM_table ptr, SAM_error *err){ +SAM_EXPORT double SAM_Geothermal_GeoHourly_geotherm_cost_epc_fixed_nget(SAM_table ptr, SAM_error *err){ double result; translateExceptions(err, [&]{ - if (!ssc_data_get_number(ptr, "hc_ctl2", &result)) - make_access_error("SAM_Geothermal", "hc_ctl2"); + if (!ssc_data_get_number(ptr, "geotherm.cost.epc.fixed", &result)) + make_access_error("SAM_Geothermal", "geotherm.cost.epc.fixed"); }); return result; } -SAM_EXPORT double SAM_Geothermal_GeoHourly_hc_ctl3_nget(SAM_table ptr, SAM_error *err){ +SAM_EXPORT double SAM_Geothermal_GeoHourly_geotherm_cost_epc_percent_nget(SAM_table ptr, SAM_error *err){ double result; translateExceptions(err, [&]{ - if (!ssc_data_get_number(ptr, "hc_ctl3", &result)) - make_access_error("SAM_Geothermal", "hc_ctl3"); + if (!ssc_data_get_number(ptr, "geotherm.cost.epc.percent", &result)) + make_access_error("SAM_Geothermal", "geotherm.cost.epc.percent"); }); return result; } -SAM_EXPORT double SAM_Geothermal_GeoHourly_hc_ctl4_nget(SAM_table ptr, SAM_error *err){ +SAM_EXPORT double SAM_Geothermal_GeoHourly_geotherm_cost_expl_lump_sum_nget(SAM_table ptr, SAM_error *err){ double result; translateExceptions(err, [&]{ - if (!ssc_data_get_number(ptr, "hc_ctl4", &result)) - make_access_error("SAM_Geothermal", "hc_ctl4"); + if (!ssc_data_get_number(ptr, "geotherm.cost.expl_lump_sum", &result)) + make_access_error("SAM_Geothermal", "geotherm.cost.expl_lump_sum"); }); return result; } -SAM_EXPORT double SAM_Geothermal_GeoHourly_hc_ctl5_nget(SAM_table ptr, SAM_error *err){ +SAM_EXPORT double SAM_Geothermal_GeoHourly_geotherm_cost_expl_multiplier_nget(SAM_table ptr, SAM_error *err){ double result; translateExceptions(err, [&]{ - if (!ssc_data_get_number(ptr, "hc_ctl5", &result)) - make_access_error("SAM_Geothermal", "hc_ctl5"); + if (!ssc_data_get_number(ptr, "geotherm.cost.expl_multiplier", &result)) + make_access_error("SAM_Geothermal", "geotherm.cost.expl_multiplier"); }); return result; } -SAM_EXPORT double SAM_Geothermal_GeoHourly_hc_ctl6_nget(SAM_table ptr, SAM_error *err){ +SAM_EXPORT double SAM_Geothermal_GeoHourly_geotherm_cost_expl_non_drill_nget(SAM_table ptr, SAM_error *err){ double result; translateExceptions(err, [&]{ - if (!ssc_data_get_number(ptr, "hc_ctl6", &result)) - make_access_error("SAM_Geothermal", "hc_ctl6"); + if (!ssc_data_get_number(ptr, "geotherm.cost.expl_non_drill", &result)) + make_access_error("SAM_Geothermal", "geotherm.cost.expl_non_drill"); }); return result; } -SAM_EXPORT double SAM_Geothermal_GeoHourly_hc_ctl7_nget(SAM_table ptr, SAM_error *err){ +SAM_EXPORT double SAM_Geothermal_GeoHourly_geotherm_cost_expl_num_wells_nget(SAM_table ptr, SAM_error *err){ double result; translateExceptions(err, [&]{ - if (!ssc_data_get_number(ptr, "hc_ctl7", &result)) - make_access_error("SAM_Geothermal", "hc_ctl7"); + if (!ssc_data_get_number(ptr, "geotherm.cost.expl_num_wells", &result)) + make_access_error("SAM_Geothermal", "geotherm.cost.expl_num_wells"); }); return result; } -SAM_EXPORT double SAM_Geothermal_GeoHourly_hc_ctl8_nget(SAM_table ptr, SAM_error *err){ +SAM_EXPORT double SAM_Geothermal_GeoHourly_geotherm_cost_indirect_amount_specified_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "geotherm.cost.indirect.amount_specified", &result)) + make_access_error("SAM_Geothermal", "geotherm.cost.indirect.amount_specified"); + }); + return result; +} + +SAM_EXPORT double SAM_Geothermal_GeoHourly_geotherm_cost_indirect_calc_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "geotherm.cost.indirect.calc", &result)) + make_access_error("SAM_Geothermal", "geotherm.cost.indirect.calc"); + }); + return result; +} + +SAM_EXPORT double SAM_Geothermal_GeoHourly_geotherm_cost_inj_cost_curve_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "geotherm.cost.inj_cost_curve", &result)) + make_access_error("SAM_Geothermal", "geotherm.cost.inj_cost_curve"); + }); + return result; +} + +SAM_EXPORT double SAM_Geothermal_GeoHourly_geotherm_cost_inj_cost_curve_welldiam_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "geotherm.cost.inj_cost_curve_welldiam", &result)) + make_access_error("SAM_Geothermal", "geotherm.cost.inj_cost_curve_welldiam"); + }); + return result; +} + +SAM_EXPORT double SAM_Geothermal_GeoHourly_geotherm_cost_inj_cost_curve_welltype_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "geotherm.cost.inj_cost_curve_welltype", &result)) + make_access_error("SAM_Geothermal", "geotherm.cost.inj_cost_curve_welltype"); + }); + return result; +} + +SAM_EXPORT double SAM_Geothermal_GeoHourly_geotherm_cost_inj_prod_well_ratio_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "geotherm.cost.inj_prod_well_ratio", &result)) + make_access_error("SAM_Geothermal", "geotherm.cost.inj_prod_well_ratio"); + }); + return result; +} + +SAM_EXPORT double SAM_Geothermal_GeoHourly_geotherm_cost_plant_auto_estimate_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "geotherm.cost.plant_auto_estimate", &result)) + make_access_error("SAM_Geothermal", "geotherm.cost.plant_auto_estimate"); + }); + return result; +} + +SAM_EXPORT double SAM_Geothermal_GeoHourly_geotherm_cost_plant_per_kW_input_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "geotherm.cost.plant_per_kW_input", &result)) + make_access_error("SAM_Geothermal", "geotherm.cost.plant_per_kW_input"); + }); + return result; +} + +SAM_EXPORT double SAM_Geothermal_GeoHourly_geotherm_cost_plant_total_calc_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "geotherm.cost.plant_total.calc", &result)) + make_access_error("SAM_Geothermal", "geotherm.cost.plant_total.calc"); + }); + return result; +} + +SAM_EXPORT double SAM_Geothermal_GeoHourly_geotherm_cost_plm_fixed_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "geotherm.cost.plm.fixed", &result)) + make_access_error("SAM_Geothermal", "geotherm.cost.plm.fixed"); + }); + return result; +} + +SAM_EXPORT double SAM_Geothermal_GeoHourly_geotherm_cost_plm_percent_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "geotherm.cost.plm.percent", &result)) + make_access_error("SAM_Geothermal", "geotherm.cost.plm.percent"); + }); + return result; +} + +SAM_EXPORT double SAM_Geothermal_GeoHourly_geotherm_cost_prod_cost_curve_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "geotherm.cost.prod_cost_curve", &result)) + make_access_error("SAM_Geothermal", "geotherm.cost.prod_cost_curve"); + }); + return result; +} + +SAM_EXPORT double SAM_Geothermal_GeoHourly_geotherm_cost_prod_cost_curve_welldiam_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "geotherm.cost.prod_cost_curve_welldiam", &result)) + make_access_error("SAM_Geothermal", "geotherm.cost.prod_cost_curve_welldiam"); + }); + return result; +} + +SAM_EXPORT double SAM_Geothermal_GeoHourly_geotherm_cost_prod_cost_curve_welltype_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "geotherm.cost.prod_cost_curve_welltype", &result)) + make_access_error("SAM_Geothermal", "geotherm.cost.prod_cost_curve_welltype"); + }); + return result; +} + +SAM_EXPORT double SAM_Geothermal_GeoHourly_geotherm_cost_prod_inj_non_drill_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "geotherm.cost.prod_inj_non_drill", &result)) + make_access_error("SAM_Geothermal", "geotherm.cost.prod_inj_non_drill"); + }); + return result; +} + +SAM_EXPORT double SAM_Geothermal_GeoHourly_geotherm_cost_pump_casing_cost_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "geotherm.cost.pump_casing_cost", &result)) + make_access_error("SAM_Geothermal", "geotherm.cost.pump_casing_cost"); + }); + return result; +} + +SAM_EXPORT double SAM_Geothermal_GeoHourly_geotherm_cost_pump_fixed_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "geotherm.cost.pump_fixed", &result)) + make_access_error("SAM_Geothermal", "geotherm.cost.pump_fixed"); + }); + return result; +} + +SAM_EXPORT double SAM_Geothermal_GeoHourly_geotherm_cost_pump_per_foot_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "geotherm.cost.pump_per_foot", &result)) + make_access_error("SAM_Geothermal", "geotherm.cost.pump_per_foot"); + }); + return result; +} + +SAM_EXPORT double SAM_Geothermal_GeoHourly_geotherm_cost_pumping_amount_specified_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "geotherm.cost.pumping.amount_specified", &result)) + make_access_error("SAM_Geothermal", "geotherm.cost.pumping.amount_specified"); + }); + return result; +} + +SAM_EXPORT double SAM_Geothermal_GeoHourly_geotherm_cost_pumping_calc_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "geotherm.cost.pumping.calc", &result)) + make_access_error("SAM_Geothermal", "geotherm.cost.pumping.calc"); + }); + return result; +} + +SAM_EXPORT double SAM_Geothermal_GeoHourly_geotherm_cost_recap_specified_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "geotherm.cost.recap_specified", &result)) + make_access_error("SAM_Geothermal", "geotherm.cost.recap_specified"); + }); + return result; +} + +SAM_EXPORT double SAM_Geothermal_GeoHourly_geotherm_cost_recap_use_calc_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "geotherm.cost.recap_use_calc", &result)) + make_access_error("SAM_Geothermal", "geotherm.cost.recap_use_calc"); + }); + return result; +} + +SAM_EXPORT double SAM_Geothermal_GeoHourly_geotherm_cost_sales_tax_percent_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "geotherm.cost.sales_tax.percent", &result)) + make_access_error("SAM_Geothermal", "geotherm.cost.sales_tax.percent"); + }); + return result; +} + +SAM_EXPORT double SAM_Geothermal_GeoHourly_geotherm_cost_stim_non_drill_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "geotherm.cost.stim_non_drill", &result)) + make_access_error("SAM_Geothermal", "geotherm.cost.stim_non_drill"); + }); + return result; +} + +SAM_EXPORT double SAM_Geothermal_GeoHourly_hc_ctl1_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "hc_ctl1", &result)) + make_access_error("SAM_Geothermal", "hc_ctl1"); + }); + return result; +} + +SAM_EXPORT double SAM_Geothermal_GeoHourly_hc_ctl2_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "hc_ctl2", &result)) + make_access_error("SAM_Geothermal", "hc_ctl2"); + }); + return result; +} + +SAM_EXPORT double SAM_Geothermal_GeoHourly_hc_ctl3_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "hc_ctl3", &result)) + make_access_error("SAM_Geothermal", "hc_ctl3"); + }); + return result; +} + +SAM_EXPORT double SAM_Geothermal_GeoHourly_hc_ctl4_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "hc_ctl4", &result)) + make_access_error("SAM_Geothermal", "hc_ctl4"); + }); + return result; +} + +SAM_EXPORT double SAM_Geothermal_GeoHourly_hc_ctl5_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "hc_ctl5", &result)) + make_access_error("SAM_Geothermal", "hc_ctl5"); + }); + return result; +} + +SAM_EXPORT double SAM_Geothermal_GeoHourly_hc_ctl6_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "hc_ctl6", &result)) + make_access_error("SAM_Geothermal", "hc_ctl6"); + }); + return result; +} + +SAM_EXPORT double SAM_Geothermal_GeoHourly_hc_ctl7_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "hc_ctl7", &result)) + make_access_error("SAM_Geothermal", "hc_ctl7"); + }); + return result; +} + +SAM_EXPORT double SAM_Geothermal_GeoHourly_hc_ctl8_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "hc_ctl8", &result)) + make_access_error("SAM_Geothermal", "hc_ctl8"); + }); + return result; +} + +SAM_EXPORT double SAM_Geothermal_GeoHourly_hc_ctl9_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "hc_ctl9", &result)) + make_access_error("SAM_Geothermal", "hc_ctl9"); + }); + return result; +} + +SAM_EXPORT double SAM_Geothermal_GeoHourly_hr_pl_nlev_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "hr_pl_nlev", &result)) + make_access_error("SAM_Geothermal", "hr_pl_nlev"); + }); + return result; +} + +SAM_EXPORT const char* SAM_Geothermal_GeoHourly_hybrid_dispatch_schedule_sget(SAM_table ptr, SAM_error *err){ + const char* result = nullptr; + translateExceptions(err, [&]{ + result = ssc_data_get_string(ptr, "hybrid_dispatch_schedule"); + if (!result) + make_access_error("SAM_Geothermal", "hybrid_dispatch_schedule"); + }); + return result; +} + +SAM_EXPORT double SAM_Geothermal_GeoHourly_inj_prod_well_distance_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "inj_prod_well_distance", &result)) + make_access_error("SAM_Geothermal", "inj_prod_well_distance"); + }); + return result; +} + +SAM_EXPORT double SAM_Geothermal_GeoHourly_injectivity_index_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "injectivity_index", &result)) + make_access_error("SAM_Geothermal", "injectivity_index"); + }); + return result; +} + +SAM_EXPORT double SAM_Geothermal_GeoHourly_model_choice_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "model_choice", &result)) + make_access_error("SAM_Geothermal", "model_choice"); + }); + return result; +} + +SAM_EXPORT double SAM_Geothermal_GeoHourly_nameplate_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "nameplate", &result)) + make_access_error("SAM_Geothermal", "nameplate"); + }); + return result; +} + +SAM_EXPORT double SAM_Geothermal_GeoHourly_num_fractures_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "num_fractures", &result)) + make_access_error("SAM_Geothermal", "num_fractures"); + }); + return result; +} + +SAM_EXPORT double SAM_Geothermal_GeoHourly_num_wells_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "num_wells", &result)) + make_access_error("SAM_Geothermal", "num_wells"); + }); + return result; +} + +SAM_EXPORT double SAM_Geothermal_GeoHourly_pb_bd_frac_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "pb_bd_frac", &result)) + make_access_error("SAM_Geothermal", "pb_bd_frac"); + }); + return result; +} + +SAM_EXPORT double SAM_Geothermal_GeoHourly_plant_efficiency_input_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "plant_efficiency_input", &result)) + make_access_error("SAM_Geothermal", "plant_efficiency_input"); + }); + return result; +} + +SAM_EXPORT double SAM_Geothermal_GeoHourly_ppi_base_year_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "ppi_base_year", &result)) + make_access_error("SAM_Geothermal", "ppi_base_year"); + }); + return result; +} + +SAM_EXPORT double SAM_Geothermal_GeoHourly_prod_well_choice_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "prod_well_choice", &result)) + make_access_error("SAM_Geothermal", "prod_well_choice"); + }); + return result; +} + +SAM_EXPORT double SAM_Geothermal_GeoHourly_pump_efficiency_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "pump_efficiency", &result)) + make_access_error("SAM_Geothermal", "pump_efficiency"); + }); + return result; +} + +SAM_EXPORT double SAM_Geothermal_GeoHourly_q_sby_frac_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "q_sby_frac", &result)) + make_access_error("SAM_Geothermal", "q_sby_frac"); + }); + return result; +} + +SAM_EXPORT double SAM_Geothermal_GeoHourly_reservoir_height_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "reservoir_height", &result)) + make_access_error("SAM_Geothermal", "reservoir_height"); + }); + return result; +} + +SAM_EXPORT double* SAM_Geothermal_GeoHourly_reservoir_model_inputs_mget(SAM_table ptr, int* nrows, int* ncols, SAM_error *err){ + double* result = nullptr; + translateExceptions(err, [&]{ + result = ssc_data_get_matrix(ptr, "reservoir_model_inputs", nrows, ncols); + if (!result) + make_access_error("SAM_Geothermal", "reservoir_model_inputs"); + }); + return result; +} + +SAM_EXPORT double SAM_Geothermal_GeoHourly_reservoir_permeability_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "reservoir_permeability", &result)) + make_access_error("SAM_Geothermal", "reservoir_permeability"); + }); + return result; +} + +SAM_EXPORT double SAM_Geothermal_GeoHourly_reservoir_pressure_change_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "reservoir_pressure_change", &result)) + make_access_error("SAM_Geothermal", "reservoir_pressure_change"); + }); + return result; +} + +SAM_EXPORT double SAM_Geothermal_GeoHourly_reservoir_pressure_change_type_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "reservoir_pressure_change_type", &result)) + make_access_error("SAM_Geothermal", "reservoir_pressure_change_type"); + }); + return result; +} + +SAM_EXPORT double SAM_Geothermal_GeoHourly_reservoir_width_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "reservoir_width", &result)) + make_access_error("SAM_Geothermal", "reservoir_width"); + }); + return result; +} + +SAM_EXPORT double SAM_Geothermal_GeoHourly_resource_depth_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "resource_depth", &result)) + make_access_error("SAM_Geothermal", "resource_depth"); + }); + return result; +} + +SAM_EXPORT double SAM_Geothermal_GeoHourly_resource_potential_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "resource_potential", &result)) + make_access_error("SAM_Geothermal", "resource_potential"); + }); + return result; +} + +SAM_EXPORT double SAM_Geothermal_GeoHourly_resource_temp_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "resource_temp", &result)) + make_access_error("SAM_Geothermal", "resource_temp"); + }); + return result; +} + +SAM_EXPORT double SAM_Geothermal_GeoHourly_resource_type_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "resource_type", &result)) + make_access_error("SAM_Geothermal", "resource_type"); + }); + return result; +} + +SAM_EXPORT double SAM_Geothermal_GeoHourly_rock_density_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "rock_density", &result)) + make_access_error("SAM_Geothermal", "rock_density"); + }); + return result; +} + +SAM_EXPORT double SAM_Geothermal_GeoHourly_rock_specific_heat_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "rock_specific_heat", &result)) + make_access_error("SAM_Geothermal", "rock_specific_heat"); + }); + return result; +} + +SAM_EXPORT double SAM_Geothermal_GeoHourly_rock_thermal_conductivity_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "rock_thermal_conductivity", &result)) + make_access_error("SAM_Geothermal", "rock_thermal_conductivity"); + }); + return result; +} + +SAM_EXPORT double SAM_Geothermal_GeoHourly_sales_tax_rate_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "sales_tax_rate", &result)) + make_access_error("SAM_Geothermal", "sales_tax_rate"); + }); + return result; +} + +SAM_EXPORT double SAM_Geothermal_GeoHourly_specified_pump_work_amount_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "specified_pump_work_amount", &result)) + make_access_error("SAM_Geothermal", "specified_pump_work_amount"); + }); + return result; +} + +SAM_EXPORT double SAM_Geothermal_GeoHourly_specify_pump_work_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "specify_pump_work", &result)) + make_access_error("SAM_Geothermal", "specify_pump_work"); + }); + return result; +} + +SAM_EXPORT double SAM_Geothermal_GeoHourly_start_day_of_year_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "start_day_of_year", &result)) + make_access_error("SAM_Geothermal", "start_day_of_year"); + }); + return result; +} + +SAM_EXPORT double SAM_Geothermal_GeoHourly_startup_frac_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "startup_frac", &result)) + make_access_error("SAM_Geothermal", "startup_frac"); + }); + return result; +} + +SAM_EXPORT double SAM_Geothermal_GeoHourly_startup_time_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "startup_time", &result)) + make_access_error("SAM_Geothermal", "startup_time"); + }); + return result; +} + +SAM_EXPORT double SAM_Geothermal_GeoHourly_stim_success_rate_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "stim_success_rate", &result)) + make_access_error("SAM_Geothermal", "stim_success_rate"); + }); + return result; +} + +SAM_EXPORT double SAM_Geothermal_GeoHourly_stimulation_type_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "stimulation_type", &result)) + make_access_error("SAM_Geothermal", "stimulation_type"); + }); + return result; +} + +SAM_EXPORT double SAM_Geothermal_GeoHourly_subsurface_water_loss_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "subsurface_water_loss", &result)) + make_access_error("SAM_Geothermal", "subsurface_water_loss"); + }); + return result; +} + +SAM_EXPORT double SAM_Geothermal_GeoHourly_temp_decline_max_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "temp_decline_max", &result)) + make_access_error("SAM_Geothermal", "temp_decline_max"); + }); + return result; +} + +SAM_EXPORT double SAM_Geothermal_GeoHourly_temp_decline_rate_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "temp_decline_rate", &result)) + make_access_error("SAM_Geothermal", "temp_decline_rate"); + }); + return result; +} + +SAM_EXPORT double SAM_Geothermal_GeoHourly_use_weather_file_conditions_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "use_weather_file_conditions", &result)) + make_access_error("SAM_Geothermal", "use_weather_file_conditions"); + }); + return result; +} + +SAM_EXPORT double SAM_Geothermal_GeoHourly_well_flow_rate_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "well_flow_rate", &result)) + make_access_error("SAM_Geothermal", "well_flow_rate"); + }); + return result; +} + +SAM_EXPORT double SAM_Geothermal_GeoHourly_wet_bulb_temp_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "wet_bulb_temp", &result)) + make_access_error("SAM_Geothermal", "wet_bulb_temp"); + }); + return result; +} + +SAM_EXPORT double SAM_Geothermal_AdjustmentFactors_adjust_constant_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "adjust_constant", &result)) + make_access_error("SAM_Geothermal", "adjust_constant"); + }); + return result; +} + +SAM_EXPORT double SAM_Geothermal_AdjustmentFactors_adjust_en_periods_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "adjust_en_periods", &result)) + make_access_error("SAM_Geothermal", "adjust_en_periods"); + }); + return result; +} + +SAM_EXPORT double SAM_Geothermal_AdjustmentFactors_adjust_en_timeindex_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "adjust_en_timeindex", &result)) + make_access_error("SAM_Geothermal", "adjust_en_timeindex"); + }); + return result; +} + +SAM_EXPORT double* SAM_Geothermal_AdjustmentFactors_adjust_periods_mget(SAM_table ptr, int* nrows, int* ncols, SAM_error *err){ + double* result = nullptr; + translateExceptions(err, [&]{ + result = ssc_data_get_matrix(ptr, "adjust_periods", nrows, ncols); + if (!result) + make_access_error("SAM_Geothermal", "adjust_periods"); + }); + return result; +} + +SAM_EXPORT double* SAM_Geothermal_AdjustmentFactors_adjust_timeindex_aget(SAM_table ptr, int* length, SAM_error *err){ + double* result = nullptr; + translateExceptions(err, [&]{ + result = ssc_data_get_array(ptr, "adjust_timeindex", length); + if (!result) + make_access_error("SAM_Geothermal", "adjust_timeindex"); + }); + return result; +} + +SAM_EXPORT double SAM_Geothermal_FinancialParameters_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_Geothermal", "analysis_period"); + }); + return result; +} + +SAM_EXPORT double SAM_Geothermal_Costs_geotherm_cost_plant_total_amount_specified_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "geotherm.cost.plant_total.amount_specified", &result)) + make_access_error("SAM_Geothermal", "geotherm.cost.plant_total.amount_specified"); + }); + return result; +} + +SAM_EXPORT double SAM_Geothermal_FinancialParameters_const_per_interest_rate1_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "const_per_interest_rate1", &result)) + make_access_error("SAM_Geothermal", "const_per_interest_rate1"); + }); + return result; +} + +SAM_EXPORT double SAM_Geothermal_FinancialParameters_const_per_interest_rate2_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "const_per_interest_rate2", &result)) + make_access_error("SAM_Geothermal", "const_per_interest_rate2"); + }); + return result; +} + +SAM_EXPORT double SAM_Geothermal_FinancialParameters_const_per_interest_rate3_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "const_per_interest_rate3", &result)) + make_access_error("SAM_Geothermal", "const_per_interest_rate3"); + }); + return result; +} + +SAM_EXPORT double SAM_Geothermal_FinancialParameters_const_per_interest_rate4_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "const_per_interest_rate4", &result)) + make_access_error("SAM_Geothermal", "const_per_interest_rate4"); + }); + return result; +} + +SAM_EXPORT double SAM_Geothermal_FinancialParameters_const_per_interest_rate5_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "const_per_interest_rate5", &result)) + make_access_error("SAM_Geothermal", "const_per_interest_rate5"); + }); + return result; +} + +SAM_EXPORT double SAM_Geothermal_FinancialParameters_const_per_months1_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "const_per_months1", &result)) + make_access_error("SAM_Geothermal", "const_per_months1"); + }); + return result; +} + +SAM_EXPORT double SAM_Geothermal_FinancialParameters_const_per_months2_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "const_per_months2", &result)) + make_access_error("SAM_Geothermal", "const_per_months2"); + }); + return result; +} + +SAM_EXPORT double SAM_Geothermal_FinancialParameters_const_per_months3_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "const_per_months3", &result)) + make_access_error("SAM_Geothermal", "const_per_months3"); + }); + return result; +} + +SAM_EXPORT double SAM_Geothermal_FinancialParameters_const_per_months4_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "const_per_months4", &result)) + make_access_error("SAM_Geothermal", "const_per_months4"); + }); + return result; +} + +SAM_EXPORT double SAM_Geothermal_FinancialParameters_const_per_months5_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "const_per_months5", &result)) + make_access_error("SAM_Geothermal", "const_per_months5"); + }); + return result; +} + +SAM_EXPORT double SAM_Geothermal_FinancialParameters_const_per_percent1_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "const_per_percent1", &result)) + make_access_error("SAM_Geothermal", "const_per_percent1"); + }); + return result; +} + +SAM_EXPORT double SAM_Geothermal_FinancialParameters_const_per_percent2_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "const_per_percent2", &result)) + make_access_error("SAM_Geothermal", "const_per_percent2"); + }); + return result; +} + +SAM_EXPORT double SAM_Geothermal_FinancialParameters_const_per_percent3_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "const_per_percent3", &result)) + make_access_error("SAM_Geothermal", "const_per_percent3"); + }); + return result; +} + +SAM_EXPORT double SAM_Geothermal_FinancialParameters_const_per_percent4_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "const_per_percent4", &result)) + make_access_error("SAM_Geothermal", "const_per_percent4"); + }); + return result; +} + +SAM_EXPORT double SAM_Geothermal_FinancialParameters_const_per_percent5_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "const_per_percent5", &result)) + make_access_error("SAM_Geothermal", "const_per_percent5"); + }); + return result; +} + +SAM_EXPORT double SAM_Geothermal_FinancialParameters_const_per_upfront_rate1_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "const_per_upfront_rate1", &result)) + make_access_error("SAM_Geothermal", "const_per_upfront_rate1"); + }); + return result; +} + +SAM_EXPORT double SAM_Geothermal_FinancialParameters_const_per_upfront_rate2_nget(SAM_table ptr, SAM_error *err){ double result; translateExceptions(err, [&]{ - if (!ssc_data_get_number(ptr, "hc_ctl8", &result)) - make_access_error("SAM_Geothermal", "hc_ctl8"); + if (!ssc_data_get_number(ptr, "const_per_upfront_rate2", &result)) + make_access_error("SAM_Geothermal", "const_per_upfront_rate2"); }); return result; } -SAM_EXPORT double SAM_Geothermal_GeoHourly_hc_ctl9_nget(SAM_table ptr, SAM_error *err){ +SAM_EXPORT double SAM_Geothermal_FinancialParameters_const_per_upfront_rate3_nget(SAM_table ptr, SAM_error *err){ double result; translateExceptions(err, [&]{ - if (!ssc_data_get_number(ptr, "hc_ctl9", &result)) - make_access_error("SAM_Geothermal", "hc_ctl9"); + if (!ssc_data_get_number(ptr, "const_per_upfront_rate3", &result)) + make_access_error("SAM_Geothermal", "const_per_upfront_rate3"); }); return result; } -SAM_EXPORT double SAM_Geothermal_GeoHourly_hr_pl_nlev_nget(SAM_table ptr, SAM_error *err){ +SAM_EXPORT double SAM_Geothermal_FinancialParameters_const_per_upfront_rate4_nget(SAM_table ptr, SAM_error *err){ double result; translateExceptions(err, [&]{ - if (!ssc_data_get_number(ptr, "hr_pl_nlev", &result)) - make_access_error("SAM_Geothermal", "hr_pl_nlev"); + if (!ssc_data_get_number(ptr, "const_per_upfront_rate4", &result)) + make_access_error("SAM_Geothermal", "const_per_upfront_rate4"); }); return result; } -SAM_EXPORT const char* SAM_Geothermal_GeoHourly_hybrid_dispatch_schedule_sget(SAM_table ptr, SAM_error *err){ - const char* result = nullptr; +SAM_EXPORT double SAM_Geothermal_FinancialParameters_const_per_upfront_rate5_nget(SAM_table ptr, SAM_error *err){ + double result; translateExceptions(err, [&]{ - result = ssc_data_get_string(ptr, "hybrid_dispatch_schedule"); - if (!result) - make_access_error("SAM_Geothermal", "hybrid_dispatch_schedule"); + if (!ssc_data_get_number(ptr, "const_per_upfront_rate5", &result)) + make_access_error("SAM_Geothermal", "const_per_upfront_rate5"); }); return result; } -SAM_EXPORT double SAM_Geothermal_GeoHourly_inj_prod_well_distance_nget(SAM_table ptr, SAM_error *err){ +SAM_EXPORT double SAM_Geothermal_Outputs_GF_flowrate_nget(SAM_table ptr, SAM_error *err){ double result; translateExceptions(err, [&]{ - if (!ssc_data_get_number(ptr, "inj_prod_well_distance", &result)) - make_access_error("SAM_Geothermal", "inj_prod_well_distance"); + if (!ssc_data_get_number(ptr, "GF_flowrate", &result)) + make_access_error("SAM_Geothermal", "GF_flowrate"); }); return result; } -SAM_EXPORT double SAM_Geothermal_GeoHourly_injectivity_index_nget(SAM_table ptr, SAM_error *err){ +SAM_EXPORT double SAM_Geothermal_Outputs_annual_energy_nget(SAM_table ptr, SAM_error *err){ double result; translateExceptions(err, [&]{ - if (!ssc_data_get_number(ptr, "injectivity_index", &result)) - make_access_error("SAM_Geothermal", "injectivity_index"); + if (!ssc_data_get_number(ptr, "annual_energy", &result)) + make_access_error("SAM_Geothermal", "annual_energy"); }); return result; } -SAM_EXPORT double SAM_Geothermal_GeoHourly_model_choice_nget(SAM_table ptr, SAM_error *err){ - double result; +SAM_EXPORT double* SAM_Geothermal_Outputs_annual_energy_distribution_time_mget(SAM_table ptr, int* nrows, int* ncols, SAM_error *err){ + double* result = nullptr; translateExceptions(err, [&]{ - if (!ssc_data_get_number(ptr, "model_choice", &result)) - make_access_error("SAM_Geothermal", "model_choice"); + result = ssc_data_get_matrix(ptr, "annual_energy_distribution_time", nrows, ncols); + if (!result) + make_access_error("SAM_Geothermal", "annual_energy_distribution_time"); }); return result; } -SAM_EXPORT double SAM_Geothermal_GeoHourly_nameplate_nget(SAM_table ptr, SAM_error *err){ +SAM_EXPORT double SAM_Geothermal_Outputs_atb_drilling_cost_nget(SAM_table ptr, SAM_error *err){ double result; translateExceptions(err, [&]{ - if (!ssc_data_get_number(ptr, "nameplate", &result)) - make_access_error("SAM_Geothermal", "nameplate"); + if (!ssc_data_get_number(ptr, "atb_drilling_cost", &result)) + make_access_error("SAM_Geothermal", "atb_drilling_cost"); }); return result; } -SAM_EXPORT double SAM_Geothermal_GeoHourly_num_fractures_nget(SAM_table ptr, SAM_error *err){ +SAM_EXPORT double SAM_Geothermal_Outputs_atb_exploration_cost_nget(SAM_table ptr, SAM_error *err){ double result; translateExceptions(err, [&]{ - if (!ssc_data_get_number(ptr, "num_fractures", &result)) - make_access_error("SAM_Geothermal", "num_fractures"); + if (!ssc_data_get_number(ptr, "atb_exploration_cost", &result)) + make_access_error("SAM_Geothermal", "atb_exploration_cost"); }); return result; } -SAM_EXPORT double SAM_Geothermal_GeoHourly_num_wells_nget(SAM_table ptr, SAM_error *err){ +SAM_EXPORT double SAM_Geothermal_Outputs_atb_plant_cost_nget(SAM_table ptr, SAM_error *err){ double result; translateExceptions(err, [&]{ - if (!ssc_data_get_number(ptr, "num_wells", &result)) - make_access_error("SAM_Geothermal", "num_wells"); + if (!ssc_data_get_number(ptr, "atb_plant_cost", &result)) + make_access_error("SAM_Geothermal", "atb_plant_cost"); }); return result; } -SAM_EXPORT double SAM_Geothermal_GeoHourly_num_wells_getem_nget(SAM_table ptr, SAM_error *err){ +SAM_EXPORT double SAM_Geothermal_Outputs_baseline_cost_nget(SAM_table ptr, SAM_error *err){ double result; translateExceptions(err, [&]{ - if (!ssc_data_get_number(ptr, "num_wells_getem", &result)) - make_access_error("SAM_Geothermal", "num_wells_getem"); + if (!ssc_data_get_number(ptr, "baseline_cost", &result)) + make_access_error("SAM_Geothermal", "baseline_cost"); }); return result; } -SAM_EXPORT double SAM_Geothermal_GeoHourly_pb_bd_frac_nget(SAM_table ptr, SAM_error *err){ +SAM_EXPORT double SAM_Geothermal_Outputs_bottom_hole_pressure_nget(SAM_table ptr, SAM_error *err){ double result; translateExceptions(err, [&]{ - if (!ssc_data_get_number(ptr, "pb_bd_frac", &result)) - make_access_error("SAM_Geothermal", "pb_bd_frac"); + if (!ssc_data_get_number(ptr, "bottom_hole_pressure", &result)) + make_access_error("SAM_Geothermal", "bottom_hole_pressure"); }); return result; } -SAM_EXPORT double SAM_Geothermal_GeoHourly_plant_efficiency_input_nget(SAM_table ptr, SAM_error *err){ +SAM_EXPORT double SAM_Geothermal_Outputs_brine_effectiveness_nget(SAM_table ptr, SAM_error *err){ double result; translateExceptions(err, [&]{ - if (!ssc_data_get_number(ptr, "plant_efficiency_input", &result)) - make_access_error("SAM_Geothermal", "plant_efficiency_input"); + if (!ssc_data_get_number(ptr, "brine_effectiveness", &result)) + make_access_error("SAM_Geothermal", "brine_effectiveness"); }); return result; } -SAM_EXPORT double SAM_Geothermal_GeoHourly_prod_well_choice_nget(SAM_table ptr, SAM_error *err){ +SAM_EXPORT double SAM_Geothermal_Outputs_capacity_factor_nget(SAM_table ptr, SAM_error *err){ double result; translateExceptions(err, [&]{ - if (!ssc_data_get_number(ptr, "prod_well_choice", &result)) - make_access_error("SAM_Geothermal", "prod_well_choice"); + if (!ssc_data_get_number(ptr, "capacity_factor", &result)) + make_access_error("SAM_Geothermal", "capacity_factor"); }); return result; } -SAM_EXPORT double SAM_Geothermal_GeoHourly_pump_efficiency_nget(SAM_table ptr, SAM_error *err){ +SAM_EXPORT double SAM_Geothermal_Outputs_condensate_pump_power_nget(SAM_table ptr, SAM_error *err){ double result; translateExceptions(err, [&]{ - if (!ssc_data_get_number(ptr, "pump_efficiency", &result)) - make_access_error("SAM_Geothermal", "pump_efficiency"); + if (!ssc_data_get_number(ptr, "condensate_pump_power", &result)) + make_access_error("SAM_Geothermal", "condensate_pump_power"); }); return result; } -SAM_EXPORT double SAM_Geothermal_GeoHourly_q_sby_frac_nget(SAM_table ptr, SAM_error *err){ +SAM_EXPORT double SAM_Geothermal_Outputs_conf_drilling_cost_nget(SAM_table ptr, SAM_error *err){ double result; translateExceptions(err, [&]{ - if (!ssc_data_get_number(ptr, "q_sby_frac", &result)) - make_access_error("SAM_Geothermal", "q_sby_frac"); + if (!ssc_data_get_number(ptr, "conf_drilling_cost", &result)) + make_access_error("SAM_Geothermal", "conf_drilling_cost"); }); return result; } -SAM_EXPORT double SAM_Geothermal_GeoHourly_reservoir_height_nget(SAM_table ptr, SAM_error *err){ +SAM_EXPORT double SAM_Geothermal_Outputs_conf_total_cost_nget(SAM_table ptr, SAM_error *err){ double result; translateExceptions(err, [&]{ - if (!ssc_data_get_number(ptr, "reservoir_height", &result)) - make_access_error("SAM_Geothermal", "reservoir_height"); + if (!ssc_data_get_number(ptr, "conf_total_cost", &result)) + make_access_error("SAM_Geothermal", "conf_total_cost"); }); return result; } -SAM_EXPORT double* SAM_Geothermal_GeoHourly_reservoir_model_inputs_mget(SAM_table ptr, int* nrows, int* ncols, SAM_error *err){ - double* result = nullptr; +SAM_EXPORT double SAM_Geothermal_Outputs_const_per_interest1_nget(SAM_table ptr, SAM_error *err){ + double result; translateExceptions(err, [&]{ - result = ssc_data_get_matrix(ptr, "reservoir_model_inputs", nrows, ncols); - if (!result) - make_access_error("SAM_Geothermal", "reservoir_model_inputs"); + if (!ssc_data_get_number(ptr, "const_per_interest1", &result)) + make_access_error("SAM_Geothermal", "const_per_interest1"); }); return result; } -SAM_EXPORT double SAM_Geothermal_GeoHourly_reservoir_permeability_nget(SAM_table ptr, SAM_error *err){ +SAM_EXPORT double SAM_Geothermal_Outputs_const_per_interest2_nget(SAM_table ptr, SAM_error *err){ double result; translateExceptions(err, [&]{ - if (!ssc_data_get_number(ptr, "reservoir_permeability", &result)) - make_access_error("SAM_Geothermal", "reservoir_permeability"); + if (!ssc_data_get_number(ptr, "const_per_interest2", &result)) + make_access_error("SAM_Geothermal", "const_per_interest2"); }); return result; } -SAM_EXPORT double SAM_Geothermal_GeoHourly_reservoir_pressure_change_nget(SAM_table ptr, SAM_error *err){ +SAM_EXPORT double SAM_Geothermal_Outputs_const_per_interest3_nget(SAM_table ptr, SAM_error *err){ double result; translateExceptions(err, [&]{ - if (!ssc_data_get_number(ptr, "reservoir_pressure_change", &result)) - make_access_error("SAM_Geothermal", "reservoir_pressure_change"); + if (!ssc_data_get_number(ptr, "const_per_interest3", &result)) + make_access_error("SAM_Geothermal", "const_per_interest3"); }); return result; } -SAM_EXPORT double SAM_Geothermal_GeoHourly_reservoir_pressure_change_type_nget(SAM_table ptr, SAM_error *err){ +SAM_EXPORT double SAM_Geothermal_Outputs_const_per_interest4_nget(SAM_table ptr, SAM_error *err){ double result; translateExceptions(err, [&]{ - if (!ssc_data_get_number(ptr, "reservoir_pressure_change_type", &result)) - make_access_error("SAM_Geothermal", "reservoir_pressure_change_type"); + if (!ssc_data_get_number(ptr, "const_per_interest4", &result)) + make_access_error("SAM_Geothermal", "const_per_interest4"); }); return result; } -SAM_EXPORT double SAM_Geothermal_GeoHourly_reservoir_width_nget(SAM_table ptr, SAM_error *err){ +SAM_EXPORT double SAM_Geothermal_Outputs_const_per_interest5_nget(SAM_table ptr, SAM_error *err){ double result; translateExceptions(err, [&]{ - if (!ssc_data_get_number(ptr, "reservoir_width", &result)) - make_access_error("SAM_Geothermal", "reservoir_width"); + if (!ssc_data_get_number(ptr, "const_per_interest5", &result)) + make_access_error("SAM_Geothermal", "const_per_interest5"); }); return result; } -SAM_EXPORT double SAM_Geothermal_GeoHourly_resource_depth_nget(SAM_table ptr, SAM_error *err){ +SAM_EXPORT double SAM_Geothermal_Outputs_const_per_interest_total_nget(SAM_table ptr, SAM_error *err){ double result; translateExceptions(err, [&]{ - if (!ssc_data_get_number(ptr, "resource_depth", &result)) - make_access_error("SAM_Geothermal", "resource_depth"); + if (!ssc_data_get_number(ptr, "const_per_interest_total", &result)) + make_access_error("SAM_Geothermal", "const_per_interest_total"); }); return result; } -SAM_EXPORT double SAM_Geothermal_GeoHourly_resource_potential_nget(SAM_table ptr, SAM_error *err){ +SAM_EXPORT double SAM_Geothermal_Outputs_const_per_percent_total_nget(SAM_table ptr, SAM_error *err){ double result; translateExceptions(err, [&]{ - if (!ssc_data_get_number(ptr, "resource_potential", &result)) - make_access_error("SAM_Geothermal", "resource_potential"); + if (!ssc_data_get_number(ptr, "const_per_percent_total", &result)) + make_access_error("SAM_Geothermal", "const_per_percent_total"); }); return result; } -SAM_EXPORT double SAM_Geothermal_GeoHourly_resource_temp_nget(SAM_table ptr, SAM_error *err){ +SAM_EXPORT double SAM_Geothermal_Outputs_const_per_principal1_nget(SAM_table ptr, SAM_error *err){ double result; translateExceptions(err, [&]{ - if (!ssc_data_get_number(ptr, "resource_temp", &result)) - make_access_error("SAM_Geothermal", "resource_temp"); + if (!ssc_data_get_number(ptr, "const_per_principal1", &result)) + make_access_error("SAM_Geothermal", "const_per_principal1"); }); return result; } -SAM_EXPORT double SAM_Geothermal_GeoHourly_resource_type_nget(SAM_table ptr, SAM_error *err){ +SAM_EXPORT double SAM_Geothermal_Outputs_const_per_principal2_nget(SAM_table ptr, SAM_error *err){ double result; translateExceptions(err, [&]{ - if (!ssc_data_get_number(ptr, "resource_type", &result)) - make_access_error("SAM_Geothermal", "resource_type"); + if (!ssc_data_get_number(ptr, "const_per_principal2", &result)) + make_access_error("SAM_Geothermal", "const_per_principal2"); }); return result; } -SAM_EXPORT double SAM_Geothermal_GeoHourly_rock_density_nget(SAM_table ptr, SAM_error *err){ +SAM_EXPORT double SAM_Geothermal_Outputs_const_per_principal3_nget(SAM_table ptr, SAM_error *err){ double result; translateExceptions(err, [&]{ - if (!ssc_data_get_number(ptr, "rock_density", &result)) - make_access_error("SAM_Geothermal", "rock_density"); + if (!ssc_data_get_number(ptr, "const_per_principal3", &result)) + make_access_error("SAM_Geothermal", "const_per_principal3"); }); return result; } -SAM_EXPORT double SAM_Geothermal_GeoHourly_rock_specific_heat_nget(SAM_table ptr, SAM_error *err){ +SAM_EXPORT double SAM_Geothermal_Outputs_const_per_principal4_nget(SAM_table ptr, SAM_error *err){ double result; translateExceptions(err, [&]{ - if (!ssc_data_get_number(ptr, "rock_specific_heat", &result)) - make_access_error("SAM_Geothermal", "rock_specific_heat"); + if (!ssc_data_get_number(ptr, "const_per_principal4", &result)) + make_access_error("SAM_Geothermal", "const_per_principal4"); }); return result; } -SAM_EXPORT double SAM_Geothermal_GeoHourly_rock_thermal_conductivity_nget(SAM_table ptr, SAM_error *err){ +SAM_EXPORT double SAM_Geothermal_Outputs_const_per_principal5_nget(SAM_table ptr, SAM_error *err){ double result; translateExceptions(err, [&]{ - if (!ssc_data_get_number(ptr, "rock_thermal_conductivity", &result)) - make_access_error("SAM_Geothermal", "rock_thermal_conductivity"); + if (!ssc_data_get_number(ptr, "const_per_principal5", &result)) + make_access_error("SAM_Geothermal", "const_per_principal5"); }); return result; } -SAM_EXPORT double SAM_Geothermal_GeoHourly_specified_pump_work_amount_nget(SAM_table ptr, SAM_error *err){ +SAM_EXPORT double SAM_Geothermal_Outputs_const_per_principal_total_nget(SAM_table ptr, SAM_error *err){ double result; translateExceptions(err, [&]{ - if (!ssc_data_get_number(ptr, "specified_pump_work_amount", &result)) - make_access_error("SAM_Geothermal", "specified_pump_work_amount"); + if (!ssc_data_get_number(ptr, "const_per_principal_total", &result)) + make_access_error("SAM_Geothermal", "const_per_principal_total"); }); return result; } -SAM_EXPORT double SAM_Geothermal_GeoHourly_specify_pump_work_nget(SAM_table ptr, SAM_error *err){ +SAM_EXPORT double SAM_Geothermal_Outputs_const_per_total1_nget(SAM_table ptr, SAM_error *err){ double result; translateExceptions(err, [&]{ - if (!ssc_data_get_number(ptr, "specify_pump_work", &result)) - make_access_error("SAM_Geothermal", "specify_pump_work"); + if (!ssc_data_get_number(ptr, "const_per_total1", &result)) + make_access_error("SAM_Geothermal", "const_per_total1"); }); return result; } -SAM_EXPORT double SAM_Geothermal_GeoHourly_start_day_of_year_nget(SAM_table ptr, SAM_error *err){ +SAM_EXPORT double SAM_Geothermal_Outputs_const_per_total2_nget(SAM_table ptr, SAM_error *err){ double result; translateExceptions(err, [&]{ - if (!ssc_data_get_number(ptr, "start_day_of_year", &result)) - make_access_error("SAM_Geothermal", "start_day_of_year"); + if (!ssc_data_get_number(ptr, "const_per_total2", &result)) + make_access_error("SAM_Geothermal", "const_per_total2"); }); return result; } -SAM_EXPORT double SAM_Geothermal_GeoHourly_startup_frac_nget(SAM_table ptr, SAM_error *err){ +SAM_EXPORT double SAM_Geothermal_Outputs_const_per_total3_nget(SAM_table ptr, SAM_error *err){ double result; translateExceptions(err, [&]{ - if (!ssc_data_get_number(ptr, "startup_frac", &result)) - make_access_error("SAM_Geothermal", "startup_frac"); + if (!ssc_data_get_number(ptr, "const_per_total3", &result)) + make_access_error("SAM_Geothermal", "const_per_total3"); }); return result; } -SAM_EXPORT double SAM_Geothermal_GeoHourly_startup_time_nget(SAM_table ptr, SAM_error *err){ +SAM_EXPORT double SAM_Geothermal_Outputs_const_per_total4_nget(SAM_table ptr, SAM_error *err){ double result; translateExceptions(err, [&]{ - if (!ssc_data_get_number(ptr, "startup_time", &result)) - make_access_error("SAM_Geothermal", "startup_time"); + if (!ssc_data_get_number(ptr, "const_per_total4", &result)) + make_access_error("SAM_Geothermal", "const_per_total4"); }); return result; } -SAM_EXPORT double SAM_Geothermal_GeoHourly_stim_success_rate_nget(SAM_table ptr, SAM_error *err){ +SAM_EXPORT double SAM_Geothermal_Outputs_const_per_total5_nget(SAM_table ptr, SAM_error *err){ double result; translateExceptions(err, [&]{ - if (!ssc_data_get_number(ptr, "stim_success_rate", &result)) - make_access_error("SAM_Geothermal", "stim_success_rate"); + if (!ssc_data_get_number(ptr, "const_per_total5", &result)) + make_access_error("SAM_Geothermal", "const_per_total5"); }); return result; } -SAM_EXPORT double SAM_Geothermal_GeoHourly_stimulation_type_nget(SAM_table ptr, SAM_error *err){ +SAM_EXPORT double SAM_Geothermal_Outputs_construction_financing_cost_nget(SAM_table ptr, SAM_error *err){ double result; translateExceptions(err, [&]{ - if (!ssc_data_get_number(ptr, "stimulation_type", &result)) - make_access_error("SAM_Geothermal", "stimulation_type"); + if (!ssc_data_get_number(ptr, "construction_financing_cost", &result)) + make_access_error("SAM_Geothermal", "construction_financing_cost"); }); return result; } -SAM_EXPORT double SAM_Geothermal_GeoHourly_subsurface_water_loss_nget(SAM_table ptr, SAM_error *err){ +SAM_EXPORT double SAM_Geothermal_Outputs_contingency_cost_nget(SAM_table ptr, SAM_error *err){ double result; translateExceptions(err, [&]{ - if (!ssc_data_get_number(ptr, "subsurface_water_loss", &result)) - make_access_error("SAM_Geothermal", "subsurface_water_loss"); + if (!ssc_data_get_number(ptr, "contingency_cost", &result)) + make_access_error("SAM_Geothermal", "contingency_cost"); }); return result; } -SAM_EXPORT double SAM_Geothermal_GeoHourly_system_use_lifetime_output_nget(SAM_table ptr, SAM_error *err){ +SAM_EXPORT double SAM_Geothermal_Outputs_cp_battery_nameplate_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_Geothermal", "system_use_lifetime_output"); + if (!ssc_data_get_number(ptr, "cp_battery_nameplate", &result)) + make_access_error("SAM_Geothermal", "cp_battery_nameplate"); }); return result; } -SAM_EXPORT double SAM_Geothermal_GeoHourly_temp_decline_max_nget(SAM_table ptr, SAM_error *err){ +SAM_EXPORT double SAM_Geothermal_Outputs_cp_system_nameplate_nget(SAM_table ptr, SAM_error *err){ double result; translateExceptions(err, [&]{ - if (!ssc_data_get_number(ptr, "temp_decline_max", &result)) - make_access_error("SAM_Geothermal", "temp_decline_max"); + if (!ssc_data_get_number(ptr, "cp_system_nameplate", &result)) + make_access_error("SAM_Geothermal", "cp_system_nameplate"); }); return result; } -SAM_EXPORT double SAM_Geothermal_GeoHourly_temp_decline_rate_nget(SAM_table ptr, SAM_error *err){ +SAM_EXPORT double SAM_Geothermal_Outputs_cw_pump_head_nget(SAM_table ptr, SAM_error *err){ double result; translateExceptions(err, [&]{ - if (!ssc_data_get_number(ptr, "temp_decline_rate", &result)) - make_access_error("SAM_Geothermal", "temp_decline_rate"); + if (!ssc_data_get_number(ptr, "cw_pump_head", &result)) + make_access_error("SAM_Geothermal", "cw_pump_head"); }); return result; } -SAM_EXPORT double SAM_Geothermal_GeoHourly_ui_calculations_only_nget(SAM_table ptr, SAM_error *err){ +SAM_EXPORT double SAM_Geothermal_Outputs_cw_pump_work_nget(SAM_table ptr, SAM_error *err){ double result; translateExceptions(err, [&]{ - if (!ssc_data_get_number(ptr, "ui_calculations_only", &result)) - make_access_error("SAM_Geothermal", "ui_calculations_only"); + if (!ssc_data_get_number(ptr, "cw_pump_work", &result)) + make_access_error("SAM_Geothermal", "cw_pump_work"); }); return result; } -SAM_EXPORT double SAM_Geothermal_GeoHourly_use_weather_file_conditions_nget(SAM_table ptr, SAM_error *err){ +SAM_EXPORT double SAM_Geothermal_Outputs_cwflow_nget(SAM_table ptr, SAM_error *err){ double result; translateExceptions(err, [&]{ - if (!ssc_data_get_number(ptr, "use_weather_file_conditions", &result)) - make_access_error("SAM_Geothermal", "use_weather_file_conditions"); + if (!ssc_data_get_number(ptr, "cwflow", &result)) + make_access_error("SAM_Geothermal", "cwflow"); }); return result; } -SAM_EXPORT double SAM_Geothermal_GeoHourly_well_flow_rate_nget(SAM_table ptr, SAM_error *err){ - double result; +SAM_EXPORT double* SAM_Geothermal_Outputs_degradation_aget(SAM_table ptr, int* length, SAM_error *err){ + double* result = nullptr; translateExceptions(err, [&]{ - if (!ssc_data_get_number(ptr, "well_flow_rate", &result)) - make_access_error("SAM_Geothermal", "well_flow_rate"); + result = ssc_data_get_array(ptr, "degradation", length); + if (!result) + make_access_error("SAM_Geothermal", "degradation"); }); return result; } -SAM_EXPORT double SAM_Geothermal_GeoHourly_wet_bulb_temp_nget(SAM_table ptr, SAM_error *err){ +SAM_EXPORT double SAM_Geothermal_Outputs_design_temp_nget(SAM_table ptr, SAM_error *err){ double result; translateExceptions(err, [&]{ - if (!ssc_data_get_number(ptr, "wet_bulb_temp", &result)) - make_access_error("SAM_Geothermal", "wet_bulb_temp"); + if (!ssc_data_get_number(ptr, "design_temp", &result)) + make_access_error("SAM_Geothermal", "design_temp"); }); return result; } -SAM_EXPORT double SAM_Geothermal_AdjustmentFactors_adjust_constant_nget(SAM_table ptr, SAM_error *err){ +SAM_EXPORT double SAM_Geothermal_Outputs_dt_rock_well_head_nget(SAM_table ptr, SAM_error *err){ double result; translateExceptions(err, [&]{ - if (!ssc_data_get_number(ptr, "adjust_constant", &result)) - make_access_error("SAM_Geothermal", "adjust_constant"); + if (!ssc_data_get_number(ptr, "dt_rock_well_head", &result)) + make_access_error("SAM_Geothermal", "dt_rock_well_head"); }); return result; } -SAM_EXPORT double SAM_Geothermal_AdjustmentFactors_adjust_en_periods_nget(SAM_table ptr, SAM_error *err){ +SAM_EXPORT double SAM_Geothermal_Outputs_eff_secondlaw_nget(SAM_table ptr, SAM_error *err){ double result; translateExceptions(err, [&]{ - if (!ssc_data_get_number(ptr, "adjust_en_periods", &result)) - make_access_error("SAM_Geothermal", "adjust_en_periods"); + if (!ssc_data_get_number(ptr, "eff_secondlaw", &result)) + make_access_error("SAM_Geothermal", "eff_secondlaw"); }); return result; } -SAM_EXPORT double SAM_Geothermal_AdjustmentFactors_adjust_en_timeindex_nget(SAM_table ptr, SAM_error *err){ +SAM_EXPORT double SAM_Geothermal_Outputs_engineering_cost_nget(SAM_table ptr, SAM_error *err){ double result; translateExceptions(err, [&]{ - if (!ssc_data_get_number(ptr, "adjust_en_timeindex", &result)) - make_access_error("SAM_Geothermal", "adjust_en_timeindex"); + if (!ssc_data_get_number(ptr, "engineering_cost", &result)) + make_access_error("SAM_Geothermal", "engineering_cost"); }); return result; } -SAM_EXPORT double* SAM_Geothermal_AdjustmentFactors_adjust_periods_mget(SAM_table ptr, int* nrows, int* ncols, SAM_error *err){ - double* result = nullptr; +SAM_EXPORT double SAM_Geothermal_Outputs_epc_total_cost_nget(SAM_table ptr, SAM_error *err){ + double result; translateExceptions(err, [&]{ - result = ssc_data_get_matrix(ptr, "adjust_periods", nrows, ncols); - if (!result) - make_access_error("SAM_Geothermal", "adjust_periods"); + if (!ssc_data_get_number(ptr, "epc_total_cost", &result)) + make_access_error("SAM_Geothermal", "epc_total_cost"); }); return result; } -SAM_EXPORT double* SAM_Geothermal_AdjustmentFactors_adjust_timeindex_aget(SAM_table ptr, int* length, SAM_error *err){ - double* result = nullptr; +SAM_EXPORT double SAM_Geothermal_Outputs_expl_drilling_cost_nget(SAM_table ptr, SAM_error *err){ + double result; translateExceptions(err, [&]{ - result = ssc_data_get_array(ptr, "adjust_timeindex", length); - if (!result) - make_access_error("SAM_Geothermal", "adjust_timeindex"); + if (!ssc_data_get_number(ptr, "expl_drilling_cost", &result)) + make_access_error("SAM_Geothermal", "expl_drilling_cost"); }); return result; } -SAM_EXPORT double SAM_Geothermal_Outputs_GF_flowrate_nget(SAM_table ptr, SAM_error *err){ +SAM_EXPORT double SAM_Geothermal_Outputs_expl_per_well_cost_nget(SAM_table ptr, SAM_error *err){ double result; translateExceptions(err, [&]{ - if (!ssc_data_get_number(ptr, "GF_flowrate", &result)) - make_access_error("SAM_Geothermal", "GF_flowrate"); + if (!ssc_data_get_number(ptr, "expl_per_well_cost", &result)) + make_access_error("SAM_Geothermal", "expl_per_well_cost"); }); return result; } -SAM_EXPORT double SAM_Geothermal_Outputs_annual_energy_nget(SAM_table ptr, SAM_error *err){ +SAM_EXPORT double SAM_Geothermal_Outputs_expl_total_cost_nget(SAM_table ptr, SAM_error *err){ double result; translateExceptions(err, [&]{ - if (!ssc_data_get_number(ptr, "annual_energy", &result)) - make_access_error("SAM_Geothermal", "annual_energy"); + if (!ssc_data_get_number(ptr, "expl_total_cost", &result)) + make_access_error("SAM_Geothermal", "expl_total_cost"); }); return result; } -SAM_EXPORT double* SAM_Geothermal_Outputs_annual_energy_distribution_time_mget(SAM_table ptr, int* nrows, int* ncols, SAM_error *err){ - double* result = nullptr; +SAM_EXPORT double SAM_Geothermal_Outputs_field_gathering_num_wells_nget(SAM_table ptr, SAM_error *err){ + double result; translateExceptions(err, [&]{ - result = ssc_data_get_matrix(ptr, "annual_energy_distribution_time", nrows, ncols); - if (!result) - make_access_error("SAM_Geothermal", "annual_energy_distribution_time"); + if (!ssc_data_get_number(ptr, "field_gathering_num_wells", &result)) + make_access_error("SAM_Geothermal", "field_gathering_num_wells"); }); return result; } -SAM_EXPORT double SAM_Geothermal_Outputs_bottom_hole_pressure_nget(SAM_table ptr, SAM_error *err){ +SAM_EXPORT double SAM_Geothermal_Outputs_first_year_output_nget(SAM_table ptr, SAM_error *err){ double result; translateExceptions(err, [&]{ - if (!ssc_data_get_number(ptr, "bottom_hole_pressure", &result)) - make_access_error("SAM_Geothermal", "bottom_hole_pressure"); + if (!ssc_data_get_number(ptr, "first_year_output", &result)) + make_access_error("SAM_Geothermal", "first_year_output"); }); return result; } -SAM_EXPORT double SAM_Geothermal_Outputs_brine_effectiveness_nget(SAM_table ptr, SAM_error *err){ +SAM_EXPORT double SAM_Geothermal_Outputs_flash_count_nget(SAM_table ptr, SAM_error *err){ double result; translateExceptions(err, [&]{ - if (!ssc_data_get_number(ptr, "brine_effectiveness", &result)) - make_access_error("SAM_Geothermal", "brine_effectiveness"); + if (!ssc_data_get_number(ptr, "flash_count", &result)) + make_access_error("SAM_Geothermal", "flash_count"); }); return result; } -SAM_EXPORT double SAM_Geothermal_Outputs_capacity_factor_nget(SAM_table ptr, SAM_error *err){ - double result; +SAM_EXPORT double* SAM_Geothermal_Outputs_gen_aget(SAM_table ptr, int* length, SAM_error *err){ + double* result = nullptr; translateExceptions(err, [&]{ - if (!ssc_data_get_number(ptr, "capacity_factor", &result)) - make_access_error("SAM_Geothermal", "capacity_factor"); + result = ssc_data_get_array(ptr, "gen", length); + if (!result) + make_access_error("SAM_Geothermal", "gen"); }); return result; } -SAM_EXPORT double SAM_Geothermal_Outputs_condensate_pump_power_nget(SAM_table ptr, SAM_error *err){ +SAM_EXPORT double SAM_Geothermal_Outputs_geothermal_analysis_period_nget(SAM_table ptr, SAM_error *err){ double result; translateExceptions(err, [&]{ - if (!ssc_data_get_number(ptr, "condensate_pump_power", &result)) - make_access_error("SAM_Geothermal", "condensate_pump_power"); + if (!ssc_data_get_number(ptr, "geothermal_analysis_period", &result)) + make_access_error("SAM_Geothermal", "geothermal_analysis_period"); }); return result; } -SAM_EXPORT double SAM_Geothermal_Outputs_cw_pump_head_nget(SAM_table ptr, SAM_error *err){ +SAM_EXPORT double SAM_Geothermal_Outputs_gross_cost_output_nget(SAM_table ptr, SAM_error *err){ double result; translateExceptions(err, [&]{ - if (!ssc_data_get_number(ptr, "cw_pump_head", &result)) - make_access_error("SAM_Geothermal", "cw_pump_head"); + if (!ssc_data_get_number(ptr, "gross_cost_output", &result)) + make_access_error("SAM_Geothermal", "gross_cost_output"); }); return result; } -SAM_EXPORT double SAM_Geothermal_Outputs_cw_pump_work_nget(SAM_table ptr, SAM_error *err){ +SAM_EXPORT double SAM_Geothermal_Outputs_gross_output_nget(SAM_table ptr, SAM_error *err){ double result; translateExceptions(err, [&]{ - if (!ssc_data_get_number(ptr, "cw_pump_work", &result)) - make_access_error("SAM_Geothermal", "cw_pump_work"); + if (!ssc_data_get_number(ptr, "gross_output", &result)) + make_access_error("SAM_Geothermal", "gross_output"); }); return result; } -SAM_EXPORT double SAM_Geothermal_Outputs_cwflow_nget(SAM_table ptr, SAM_error *err){ +SAM_EXPORT double SAM_Geothermal_Outputs_hp_flash_pressure_nget(SAM_table ptr, SAM_error *err){ double result; translateExceptions(err, [&]{ - if (!ssc_data_get_number(ptr, "cwflow", &result)) - make_access_error("SAM_Geothermal", "cwflow"); + if (!ssc_data_get_number(ptr, "hp_flash_pressure", &result)) + make_access_error("SAM_Geothermal", "hp_flash_pressure"); }); return result; } -SAM_EXPORT double SAM_Geothermal_Outputs_dt_rock_well_head_nget(SAM_table ptr, SAM_error *err){ +SAM_EXPORT double SAM_Geothermal_Outputs_indirect_cost_nget(SAM_table ptr, SAM_error *err){ double result; translateExceptions(err, [&]{ - if (!ssc_data_get_number(ptr, "dt_rock_well_head", &result)) - make_access_error("SAM_Geothermal", "dt_rock_well_head"); + if (!ssc_data_get_number(ptr, "indirect_cost", &result)) + make_access_error("SAM_Geothermal", "indirect_cost"); }); return result; } -SAM_EXPORT double SAM_Geothermal_Outputs_eff_secondlaw_nget(SAM_table ptr, SAM_error *err){ +SAM_EXPORT double SAM_Geothermal_Outputs_indirect_pump_gathering_cost_nget(SAM_table ptr, SAM_error *err){ double result; translateExceptions(err, [&]{ - if (!ssc_data_get_number(ptr, "eff_secondlaw", &result)) - make_access_error("SAM_Geothermal", "eff_secondlaw"); + if (!ssc_data_get_number(ptr, "indirect_pump_gathering_cost", &result)) + make_access_error("SAM_Geothermal", "indirect_pump_gathering_cost"); }); return result; } -SAM_EXPORT double SAM_Geothermal_Outputs_first_year_output_nget(SAM_table ptr, SAM_error *err){ +SAM_EXPORT double SAM_Geothermal_Outputs_inj_num_pumps_nget(SAM_table ptr, SAM_error *err){ double result; translateExceptions(err, [&]{ - if (!ssc_data_get_number(ptr, "first_year_output", &result)) - make_access_error("SAM_Geothermal", "first_year_output"); + if (!ssc_data_get_number(ptr, "inj_num_pumps", &result)) + make_access_error("SAM_Geothermal", "inj_num_pumps"); }); return result; } -SAM_EXPORT double SAM_Geothermal_Outputs_flash_count_nget(SAM_table ptr, SAM_error *err){ +SAM_EXPORT double SAM_Geothermal_Outputs_inj_pump_cost_nget(SAM_table ptr, SAM_error *err){ double result; translateExceptions(err, [&]{ - if (!ssc_data_get_number(ptr, "flash_count", &result)) - make_access_error("SAM_Geothermal", "flash_count"); + if (!ssc_data_get_number(ptr, "inj_pump_cost", &result)) + make_access_error("SAM_Geothermal", "inj_pump_cost"); }); return result; } -SAM_EXPORT double* SAM_Geothermal_Outputs_gen_aget(SAM_table ptr, int* length, SAM_error *err){ - double* result = nullptr; +SAM_EXPORT double SAM_Geothermal_Outputs_inj_pump_cost_per_pump_nget(SAM_table ptr, SAM_error *err){ + double result; translateExceptions(err, [&]{ - result = ssc_data_get_array(ptr, "gen", length); - if (!result) - make_access_error("SAM_Geothermal", "gen"); + if (!ssc_data_get_number(ptr, "inj_pump_cost_per_pump", &result)) + make_access_error("SAM_Geothermal", "inj_pump_cost_per_pump"); }); return result; } -SAM_EXPORT double SAM_Geothermal_Outputs_gross_cost_output_nget(SAM_table ptr, SAM_error *err){ +SAM_EXPORT double SAM_Geothermal_Outputs_inj_pump_hp_nget(SAM_table ptr, SAM_error *err){ double result; translateExceptions(err, [&]{ - if (!ssc_data_get_number(ptr, "gross_cost_output", &result)) - make_access_error("SAM_Geothermal", "gross_cost_output"); + if (!ssc_data_get_number(ptr, "inj_pump_hp", &result)) + make_access_error("SAM_Geothermal", "inj_pump_hp"); }); return result; } -SAM_EXPORT double SAM_Geothermal_Outputs_gross_output_nget(SAM_table ptr, SAM_error *err){ +SAM_EXPORT double SAM_Geothermal_Outputs_inj_total_cost_nget(SAM_table ptr, SAM_error *err){ double result; translateExceptions(err, [&]{ - if (!ssc_data_get_number(ptr, "gross_output", &result)) - make_access_error("SAM_Geothermal", "gross_output"); + if (!ssc_data_get_number(ptr, "inj_total_cost", &result)) + make_access_error("SAM_Geothermal", "inj_total_cost"); }); return result; } -SAM_EXPORT double SAM_Geothermal_Outputs_hp_flash_pressure_nget(SAM_table ptr, SAM_error *err){ +SAM_EXPORT double SAM_Geothermal_Outputs_inj_well_cost_nget(SAM_table ptr, SAM_error *err){ double result; translateExceptions(err, [&]{ - if (!ssc_data_get_number(ptr, "hp_flash_pressure", &result)) - make_access_error("SAM_Geothermal", "hp_flash_pressure"); + if (!ssc_data_get_number(ptr, "inj_well_cost", &result)) + make_access_error("SAM_Geothermal", "inj_well_cost"); }); return result; } -SAM_EXPORT double SAM_Geothermal_Outputs_inj_pump_hp_nget(SAM_table ptr, SAM_error *err){ +SAM_EXPORT double SAM_Geothermal_Outputs_installed_cost_per_kW_nget(SAM_table ptr, SAM_error *err){ double result; translateExceptions(err, [&]{ - if (!ssc_data_get_number(ptr, "inj_pump_hp", &result)) - make_access_error("SAM_Geothermal", "inj_pump_hp"); + if (!ssc_data_get_number(ptr, "installed_cost_per_kW", &result)) + make_access_error("SAM_Geothermal", "installed_cost_per_kW"); }); return result; } @@ -1672,6 +2843,33 @@ SAM_EXPORT double SAM_Geothermal_Outputs_ncg_condensate_pump_nget(SAM_table ptr, return result; } +SAM_EXPORT double SAM_Geothermal_Outputs_net_plant_output_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "net_plant_output", &result)) + make_access_error("SAM_Geothermal", "net_plant_output"); + }); + return result; +} + +SAM_EXPORT double SAM_Geothermal_Outputs_num_confirm_wells_to_production_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "num_confirm_wells_to_production", &result)) + make_access_error("SAM_Geothermal", "num_confirm_wells_to_production"); + }); + return result; +} + +SAM_EXPORT double SAM_Geothermal_Outputs_num_wells_getem_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "num_wells_getem", &result)) + make_access_error("SAM_Geothermal", "num_wells_getem"); + }); + return result; +} + SAM_EXPORT double SAM_Geothermal_Outputs_num_wells_getem_inj_nget(SAM_table ptr, SAM_error *err){ double result; translateExceptions(err, [&]{ @@ -1717,6 +2915,15 @@ SAM_EXPORT double SAM_Geothermal_Outputs_num_wells_getem_prod_failed_nget(SAM_ta return result; } +SAM_EXPORT double SAM_Geothermal_Outputs_piping_cost_per_well_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "piping_cost_per_well", &result)) + make_access_error("SAM_Geothermal", "piping_cost_per_well"); + }); + return result; +} + SAM_EXPORT double SAM_Geothermal_Outputs_plant_brine_eff_nget(SAM_table ptr, SAM_error *err){ double result; translateExceptions(err, [&]{ @@ -1726,6 +2933,15 @@ SAM_EXPORT double SAM_Geothermal_Outputs_plant_brine_eff_nget(SAM_table ptr, SAM return result; } +SAM_EXPORT double SAM_Geothermal_Outputs_plm_total_cost_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "plm_total_cost", &result)) + make_access_error("SAM_Geothermal", "plm_total_cost"); + }); + return result; +} + SAM_EXPORT double SAM_Geothermal_Outputs_pressure_ratio_1_nget(SAM_table ptr, SAM_error *err){ double result; translateExceptions(err, [&]{ @@ -1753,6 +2969,60 @@ SAM_EXPORT double SAM_Geothermal_Outputs_pressure_ratio_3_nget(SAM_table ptr, SA return result; } +SAM_EXPORT double SAM_Geothermal_Outputs_prod_inj_total_cost_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "prod_inj_total_cost", &result)) + make_access_error("SAM_Geothermal", "prod_inj_total_cost"); + }); + return result; +} + +SAM_EXPORT double SAM_Geothermal_Outputs_prod_pump_cost_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "prod_pump_cost", &result)) + make_access_error("SAM_Geothermal", "prod_pump_cost"); + }); + return result; +} + +SAM_EXPORT double SAM_Geothermal_Outputs_prod_pump_cost_per_well_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "prod_pump_cost_per_well", &result)) + make_access_error("SAM_Geothermal", "prod_pump_cost_per_well"); + }); + return result; +} + +SAM_EXPORT double SAM_Geothermal_Outputs_prod_total_cost_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "prod_total_cost", &result)) + make_access_error("SAM_Geothermal", "prod_total_cost"); + }); + return result; +} + +SAM_EXPORT double SAM_Geothermal_Outputs_prod_well_cost_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "prod_well_cost", &result)) + make_access_error("SAM_Geothermal", "prod_well_cost"); + }); + return result; +} + +SAM_EXPORT double SAM_Geothermal_Outputs_pump_cost_install_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "pump_cost_install", &result)) + make_access_error("SAM_Geothermal", "pump_cost_install"); + }); + return result; +} + SAM_EXPORT double SAM_Geothermal_Outputs_pump_depth_ft_nget(SAM_table ptr, SAM_error *err){ double result; translateExceptions(err, [&]{ @@ -1771,6 +3041,24 @@ SAM_EXPORT double SAM_Geothermal_Outputs_pump_hp_nget(SAM_table ptr, SAM_error * return result; } +SAM_EXPORT double SAM_Geothermal_Outputs_pump_only_cost_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "pump_only_cost", &result)) + make_access_error("SAM_Geothermal", "pump_only_cost"); + }); + return result; +} + +SAM_EXPORT double SAM_Geothermal_Outputs_pump_size_hp_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "pump_size_hp", &result)) + make_access_error("SAM_Geothermal", "pump_size_hp"); + }); + return result; +} + SAM_EXPORT double SAM_Geothermal_Outputs_pump_watthr_per_lb_nget(SAM_table ptr, SAM_error *err){ double result; translateExceptions(err, [&]{ @@ -1870,6 +3158,15 @@ SAM_EXPORT double SAM_Geothermal_Outputs_reservoir_pressure_nget(SAM_table ptr, return result; } +SAM_EXPORT double SAM_Geothermal_Outputs_sales_tax_cost_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "sales_tax_cost", &result)) + make_access_error("SAM_Geothermal", "sales_tax_cost"); + }); + return result; +} + SAM_EXPORT double SAM_Geothermal_Outputs_spec_vol_nget(SAM_table ptr, SAM_error *err){ double result; translateExceptions(err, [&]{ @@ -1888,6 +3185,51 @@ SAM_EXPORT double SAM_Geothermal_Outputs_spec_vol_lp_nget(SAM_table ptr, SAM_err return result; } +SAM_EXPORT double SAM_Geothermal_Outputs_stim_cost_non_drill_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "stim_cost_non_drill", &result)) + make_access_error("SAM_Geothermal", "stim_cost_non_drill"); + }); + return result; +} + +SAM_EXPORT double SAM_Geothermal_Outputs_stim_cost_per_well_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "stim_cost_per_well", &result)) + make_access_error("SAM_Geothermal", "stim_cost_per_well"); + }); + return result; +} + +SAM_EXPORT double SAM_Geothermal_Outputs_stim_total_cost_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "stim_total_cost", &result)) + make_access_error("SAM_Geothermal", "stim_total_cost"); + }); + return result; +} + +SAM_EXPORT double SAM_Geothermal_Outputs_sum_prod_inj_total_cost_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "sum_prod_inj_total_cost", &result)) + make_access_error("SAM_Geothermal", "sum_prod_inj_total_cost"); + }); + return result; +} + +SAM_EXPORT double SAM_Geothermal_Outputs_system_capacity_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "system_capacity", &result)) + make_access_error("SAM_Geothermal", "system_capacity"); + }); + return result; +} + SAM_EXPORT double* SAM_Geothermal_Outputs_system_lifetime_recapitalize_aget(SAM_table ptr, int* length, SAM_error *err){ double* result = nullptr; translateExceptions(err, [&]{ @@ -1898,6 +3240,33 @@ SAM_EXPORT double* SAM_Geothermal_Outputs_system_lifetime_recapitalize_aget(SAM_ return result; } +SAM_EXPORT double SAM_Geothermal_Outputs_system_recapitalization_cost_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "system_recapitalization_cost", &result)) + make_access_error("SAM_Geothermal", "system_recapitalization_cost"); + }); + return result; +} + +SAM_EXPORT double SAM_Geothermal_Outputs_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_Geothermal", "system_use_lifetime_output"); + }); + return result; +} + +SAM_EXPORT double SAM_Geothermal_Outputs_system_use_recapitalization_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "system_use_recapitalization", &result)) + make_access_error("SAM_Geothermal", "system_use_recapitalization"); + }); + return result; +} + SAM_EXPORT double* SAM_Geothermal_Outputs_timestep_dry_bulb_aget(SAM_table ptr, int* length, SAM_error *err){ double* result = nullptr; translateExceptions(err, [&]{ @@ -1948,6 +3317,141 @@ SAM_EXPORT double* SAM_Geothermal_Outputs_timestep_wet_bulb_aget(SAM_table ptr, return result; } +SAM_EXPORT double SAM_Geothermal_Outputs_total_capital_cost_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "total_capital_cost", &result)) + make_access_error("SAM_Geothermal", "total_capital_cost"); + }); + return result; +} + +SAM_EXPORT double SAM_Geothermal_Outputs_total_direct_cost_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "total_direct_cost", &result)) + make_access_error("SAM_Geothermal", "total_direct_cost"); + }); + return result; +} + +SAM_EXPORT double SAM_Geothermal_Outputs_total_drilling_cost_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "total_drilling_cost", &result)) + make_access_error("SAM_Geothermal", "total_drilling_cost"); + }); + return result; +} + +SAM_EXPORT double SAM_Geothermal_Outputs_total_drilling_cost_used_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "total_drilling_cost_used", &result)) + make_access_error("SAM_Geothermal", "total_drilling_cost_used"); + }); + return result; +} + +SAM_EXPORT double SAM_Geothermal_Outputs_total_drilling_permitting_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "total_drilling_permitting", &result)) + make_access_error("SAM_Geothermal", "total_drilling_permitting"); + }); + return result; +} + +SAM_EXPORT double SAM_Geothermal_Outputs_total_expl_permitting_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "total_expl_permitting", &result)) + make_access_error("SAM_Geothermal", "total_expl_permitting"); + }); + return result; +} + +SAM_EXPORT double SAM_Geothermal_Outputs_total_gathering_cost_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "total_gathering_cost", &result)) + make_access_error("SAM_Geothermal", "total_gathering_cost"); + }); + return result; +} + +SAM_EXPORT double SAM_Geothermal_Outputs_total_getem_om_cost_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "total_getem_om_cost", &result)) + make_access_error("SAM_Geothermal", "total_getem_om_cost"); + }); + return result; +} + +SAM_EXPORT double SAM_Geothermal_Outputs_total_installed_cost_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "total_installed_cost", &result)) + make_access_error("SAM_Geothermal", "total_installed_cost"); + }); + return result; +} + +SAM_EXPORT double SAM_Geothermal_Outputs_total_plant_cost_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "total_plant_cost", &result)) + make_access_error("SAM_Geothermal", "total_plant_cost"); + }); + return result; +} + +SAM_EXPORT double SAM_Geothermal_Outputs_total_plant_cost_used_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "total_plant_cost_used", &result)) + make_access_error("SAM_Geothermal", "total_plant_cost_used"); + }); + return result; +} + +SAM_EXPORT double SAM_Geothermal_Outputs_total_pump_cost_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "total_pump_cost", &result)) + make_access_error("SAM_Geothermal", "total_pump_cost"); + }); + return result; +} + +SAM_EXPORT double SAM_Geothermal_Outputs_total_pump_gathering_cost_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "total_pump_gathering_cost", &result)) + make_access_error("SAM_Geothermal", "total_pump_gathering_cost"); + }); + return result; +} + +SAM_EXPORT double SAM_Geothermal_Outputs_total_pump_gathering_cost_used_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "total_pump_gathering_cost_used", &result)) + make_access_error("SAM_Geothermal", "total_pump_gathering_cost_used"); + }); + return result; +} + +SAM_EXPORT double SAM_Geothermal_Outputs_total_surface_equipment_cost_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "total_surface_equipment_cost", &result)) + make_access_error("SAM_Geothermal", "total_surface_equipment_cost"); + }); + return result; +} + SAM_EXPORT double SAM_Geothermal_Outputs_v_stage_1_nget(SAM_table ptr, SAM_error *err){ double result; translateExceptions(err, [&]{ diff --git a/api/modules/SAM_GeothermalCosts.cpp b/api/modules/SAM_GeothermalCosts.cpp index fa45e42e1f..d53cb91099 100644 --- a/api/modules/SAM_GeothermalCosts.cpp +++ b/api/modules/SAM_GeothermalCosts.cpp @@ -98,6 +98,36 @@ SAM_EXPORT void SAM_GeothermalCosts_GeoHourly_geotherm_cost_conf_num_wells_nset( }); } +SAM_EXPORT void SAM_GeothermalCosts_GeoHourly_geotherm_cost_contingency_percent_nset(SAM_table ptr, double number, SAM_error *err){ + translateExceptions(err, [&]{ + ssc_data_set_number(ptr, "geotherm.cost.contingency_percent", number); + }); +} + +SAM_EXPORT void SAM_GeothermalCosts_GeoHourly_geotherm_cost_drilling_amount_specified_nset(SAM_table ptr, double number, SAM_error *err){ + translateExceptions(err, [&]{ + ssc_data_set_number(ptr, "geotherm.cost.drilling.amount_specified", number); + }); +} + +SAM_EXPORT void SAM_GeothermalCosts_GeoHourly_geotherm_cost_drilling_calc_nset(SAM_table ptr, double number, SAM_error *err){ + translateExceptions(err, [&]{ + ssc_data_set_number(ptr, "geotherm.cost.drilling.calc", number); + }); +} + +SAM_EXPORT void SAM_GeothermalCosts_GeoHourly_geotherm_cost_epc_fixed_nset(SAM_table ptr, double number, SAM_error *err){ + translateExceptions(err, [&]{ + ssc_data_set_number(ptr, "geotherm.cost.epc.fixed", number); + }); +} + +SAM_EXPORT void SAM_GeothermalCosts_GeoHourly_geotherm_cost_epc_percent_nset(SAM_table ptr, double number, SAM_error *err){ + translateExceptions(err, [&]{ + ssc_data_set_number(ptr, "geotherm.cost.epc.percent", number); + }); +} + SAM_EXPORT void SAM_GeothermalCosts_GeoHourly_geotherm_cost_expl_lump_sum_nset(SAM_table ptr, double number, SAM_error *err){ translateExceptions(err, [&]{ ssc_data_set_number(ptr, "geotherm.cost.expl_lump_sum", number); @@ -122,6 +152,18 @@ SAM_EXPORT void SAM_GeothermalCosts_GeoHourly_geotherm_cost_expl_num_wells_nset( }); } +SAM_EXPORT void SAM_GeothermalCosts_GeoHourly_geotherm_cost_indirect_amount_specified_nset(SAM_table ptr, double number, SAM_error *err){ + translateExceptions(err, [&]{ + ssc_data_set_number(ptr, "geotherm.cost.indirect.amount_specified", number); + }); +} + +SAM_EXPORT void SAM_GeothermalCosts_GeoHourly_geotherm_cost_indirect_calc_nset(SAM_table ptr, double number, SAM_error *err){ + translateExceptions(err, [&]{ + ssc_data_set_number(ptr, "geotherm.cost.indirect.calc", number); + }); +} + SAM_EXPORT void SAM_GeothermalCosts_GeoHourly_geotherm_cost_inj_cost_curve_nset(SAM_table ptr, double number, SAM_error *err){ translateExceptions(err, [&]{ ssc_data_set_number(ptr, "geotherm.cost.inj_cost_curve", number); @@ -140,6 +182,36 @@ SAM_EXPORT void SAM_GeothermalCosts_GeoHourly_geotherm_cost_inj_cost_curve_wellt }); } +SAM_EXPORT void SAM_GeothermalCosts_GeoHourly_geotherm_cost_plant_auto_estimate_nset(SAM_table ptr, double number, SAM_error *err){ + translateExceptions(err, [&]{ + ssc_data_set_number(ptr, "geotherm.cost.plant_auto_estimate", number); + }); +} + +SAM_EXPORT void SAM_GeothermalCosts_GeoHourly_geotherm_cost_plant_per_kW_input_nset(SAM_table ptr, double number, SAM_error *err){ + translateExceptions(err, [&]{ + ssc_data_set_number(ptr, "geotherm.cost.plant_per_kW_input", number); + }); +} + +SAM_EXPORT void SAM_GeothermalCosts_GeoHourly_geotherm_cost_plant_total_calc_nset(SAM_table ptr, double number, SAM_error *err){ + translateExceptions(err, [&]{ + ssc_data_set_number(ptr, "geotherm.cost.plant_total.calc", number); + }); +} + +SAM_EXPORT void SAM_GeothermalCosts_GeoHourly_geotherm_cost_plm_fixed_nset(SAM_table ptr, double number, SAM_error *err){ + translateExceptions(err, [&]{ + ssc_data_set_number(ptr, "geotherm.cost.plm.fixed", number); + }); +} + +SAM_EXPORT void SAM_GeothermalCosts_GeoHourly_geotherm_cost_plm_percent_nset(SAM_table ptr, double number, SAM_error *err){ + translateExceptions(err, [&]{ + ssc_data_set_number(ptr, "geotherm.cost.plm.percent", number); + }); +} + SAM_EXPORT void SAM_GeothermalCosts_GeoHourly_geotherm_cost_prod_cost_curve_nset(SAM_table ptr, double number, SAM_error *err){ translateExceptions(err, [&]{ ssc_data_set_number(ptr, "geotherm.cost.prod_cost_curve", number); @@ -158,6 +230,12 @@ SAM_EXPORT void SAM_GeothermalCosts_GeoHourly_geotherm_cost_prod_cost_curve_well }); } +SAM_EXPORT void SAM_GeothermalCosts_GeoHourly_geotherm_cost_prod_inj_non_drill_nset(SAM_table ptr, double number, SAM_error *err){ + translateExceptions(err, [&]{ + ssc_data_set_number(ptr, "geotherm.cost.prod_inj_non_drill", number); + }); +} + SAM_EXPORT void SAM_GeothermalCosts_GeoHourly_geotherm_cost_pump_casing_cost_nset(SAM_table ptr, double number, SAM_error *err){ translateExceptions(err, [&]{ ssc_data_set_number(ptr, "geotherm.cost.pump_casing_cost", number); @@ -176,6 +254,36 @@ SAM_EXPORT void SAM_GeothermalCosts_GeoHourly_geotherm_cost_pump_per_foot_nset(S }); } +SAM_EXPORT void SAM_GeothermalCosts_GeoHourly_geotherm_cost_pumping_amount_specified_nset(SAM_table ptr, double number, SAM_error *err){ + translateExceptions(err, [&]{ + ssc_data_set_number(ptr, "geotherm.cost.pumping.amount_specified", number); + }); +} + +SAM_EXPORT void SAM_GeothermalCosts_GeoHourly_geotherm_cost_pumping_calc_nset(SAM_table ptr, double number, SAM_error *err){ + translateExceptions(err, [&]{ + ssc_data_set_number(ptr, "geotherm.cost.pumping.calc", number); + }); +} + +SAM_EXPORT void SAM_GeothermalCosts_GeoHourly_geotherm_cost_recap_specified_nset(SAM_table ptr, double number, SAM_error *err){ + translateExceptions(err, [&]{ + ssc_data_set_number(ptr, "geotherm.cost.recap_specified", number); + }); +} + +SAM_EXPORT void SAM_GeothermalCosts_GeoHourly_geotherm_cost_recap_use_calc_nset(SAM_table ptr, double number, SAM_error *err){ + translateExceptions(err, [&]{ + ssc_data_set_number(ptr, "geotherm.cost.recap_use_calc", number); + }); +} + +SAM_EXPORT void SAM_GeothermalCosts_GeoHourly_geotherm_cost_sales_tax_percent_nset(SAM_table ptr, double number, SAM_error *err){ + translateExceptions(err, [&]{ + ssc_data_set_number(ptr, "geotherm.cost.sales_tax.percent", number); + }); +} + SAM_EXPORT void SAM_GeothermalCosts_GeoHourly_geotherm_cost_stim_non_drill_nset(SAM_table ptr, double number, SAM_error *err){ translateExceptions(err, [&]{ ssc_data_set_number(ptr, "geotherm.cost.stim_non_drill", number); @@ -218,6 +326,12 @@ SAM_EXPORT void SAM_GeothermalCosts_GeoHourly_ncg_condensate_pump_nset(SAM_table }); } +SAM_EXPORT void SAM_GeothermalCosts_GeoHourly_net_plant_output_nset(SAM_table ptr, double number, SAM_error *err){ + translateExceptions(err, [&]{ + ssc_data_set_number(ptr, "net_plant_output", number); + }); +} + SAM_EXPORT void SAM_GeothermalCosts_GeoHourly_num_wells_getem_nset(SAM_table ptr, double number, SAM_error *err){ translateExceptions(err, [&]{ ssc_data_set_number(ptr, "num_wells_getem", number); @@ -242,6 +356,12 @@ SAM_EXPORT void SAM_GeothermalCosts_GeoHourly_num_wells_getem_prod_failed_nset(S }); } +SAM_EXPORT void SAM_GeothermalCosts_GeoHourly_num_wells_getem_prod_inj_sum_nset(SAM_table ptr, double number, SAM_error *err){ + translateExceptions(err, [&]{ + ssc_data_set_number(ptr, "num_wells_getem_prod_inj_sum", number); + }); +} + SAM_EXPORT void SAM_GeothermalCosts_GeoHourly_ppi_base_year_nset(SAM_table ptr, double number, SAM_error *err){ translateExceptions(err, [&]{ ssc_data_set_number(ptr, "ppi_base_year", number); @@ -314,6 +434,12 @@ SAM_EXPORT void SAM_GeothermalCosts_GeoHourly_resource_depth_nset(SAM_table ptr, }); } +SAM_EXPORT void SAM_GeothermalCosts_GeoHourly_sales_tax_rate_nset(SAM_table ptr, double number, SAM_error *err){ + translateExceptions(err, [&]{ + ssc_data_set_number(ptr, "sales_tax_rate", number); + }); +} + SAM_EXPORT void SAM_GeothermalCosts_GeoHourly_spec_vol_nset(SAM_table ptr, double number, SAM_error *err){ translateExceptions(err, [&]{ ssc_data_set_number(ptr, "spec_vol", number); @@ -362,6 +488,18 @@ SAM_EXPORT void SAM_GeothermalCosts_GeoHourly_x_lp_nset(SAM_table ptr, double nu }); } +SAM_EXPORT void SAM_GeothermalCosts_FinancialModel_geo_financial_model_nset(SAM_table ptr, double number, SAM_error *err){ + translateExceptions(err, [&]{ + ssc_data_set_number(ptr, "geo_financial_model", number); + }); +} + +SAM_EXPORT void SAM_GeothermalCosts_Common_geotherm_cost_plant_total_amount_specified_nset(SAM_table ptr, double number, SAM_error *err){ + translateExceptions(err, [&]{ + ssc_data_set_number(ptr, "geotherm.cost.plant_total.amount_specified", number); + }); +} + SAM_EXPORT double SAM_GeothermalCosts_GeoHourly_GF_flowrate_nget(SAM_table ptr, SAM_error *err){ double result; translateExceptions(err, [&]{ @@ -488,6 +626,51 @@ SAM_EXPORT double SAM_GeothermalCosts_GeoHourly_geotherm_cost_conf_num_wells_nge return result; } +SAM_EXPORT double SAM_GeothermalCosts_GeoHourly_geotherm_cost_contingency_percent_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "geotherm.cost.contingency_percent", &result)) + make_access_error("SAM_GeothermalCosts", "geotherm.cost.contingency_percent"); + }); + return result; +} + +SAM_EXPORT double SAM_GeothermalCosts_GeoHourly_geotherm_cost_drilling_amount_specified_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "geotherm.cost.drilling.amount_specified", &result)) + make_access_error("SAM_GeothermalCosts", "geotherm.cost.drilling.amount_specified"); + }); + return result; +} + +SAM_EXPORT double SAM_GeothermalCosts_GeoHourly_geotherm_cost_drilling_calc_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "geotherm.cost.drilling.calc", &result)) + make_access_error("SAM_GeothermalCosts", "geotherm.cost.drilling.calc"); + }); + return result; +} + +SAM_EXPORT double SAM_GeothermalCosts_GeoHourly_geotherm_cost_epc_fixed_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "geotherm.cost.epc.fixed", &result)) + make_access_error("SAM_GeothermalCosts", "geotherm.cost.epc.fixed"); + }); + return result; +} + +SAM_EXPORT double SAM_GeothermalCosts_GeoHourly_geotherm_cost_epc_percent_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "geotherm.cost.epc.percent", &result)) + make_access_error("SAM_GeothermalCosts", "geotherm.cost.epc.percent"); + }); + return result; +} + SAM_EXPORT double SAM_GeothermalCosts_GeoHourly_geotherm_cost_expl_lump_sum_nget(SAM_table ptr, SAM_error *err){ double result; translateExceptions(err, [&]{ @@ -524,6 +707,24 @@ SAM_EXPORT double SAM_GeothermalCosts_GeoHourly_geotherm_cost_expl_num_wells_nge return result; } +SAM_EXPORT double SAM_GeothermalCosts_GeoHourly_geotherm_cost_indirect_amount_specified_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "geotherm.cost.indirect.amount_specified", &result)) + make_access_error("SAM_GeothermalCosts", "geotherm.cost.indirect.amount_specified"); + }); + return result; +} + +SAM_EXPORT double SAM_GeothermalCosts_GeoHourly_geotherm_cost_indirect_calc_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "geotherm.cost.indirect.calc", &result)) + make_access_error("SAM_GeothermalCosts", "geotherm.cost.indirect.calc"); + }); + return result; +} + SAM_EXPORT double SAM_GeothermalCosts_GeoHourly_geotherm_cost_inj_cost_curve_nget(SAM_table ptr, SAM_error *err){ double result; translateExceptions(err, [&]{ @@ -551,6 +752,51 @@ SAM_EXPORT double SAM_GeothermalCosts_GeoHourly_geotherm_cost_inj_cost_curve_wel return result; } +SAM_EXPORT double SAM_GeothermalCosts_GeoHourly_geotherm_cost_plant_auto_estimate_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "geotherm.cost.plant_auto_estimate", &result)) + make_access_error("SAM_GeothermalCosts", "geotherm.cost.plant_auto_estimate"); + }); + return result; +} + +SAM_EXPORT double SAM_GeothermalCosts_GeoHourly_geotherm_cost_plant_per_kW_input_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "geotherm.cost.plant_per_kW_input", &result)) + make_access_error("SAM_GeothermalCosts", "geotherm.cost.plant_per_kW_input"); + }); + return result; +} + +SAM_EXPORT double SAM_GeothermalCosts_GeoHourly_geotherm_cost_plant_total_calc_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "geotherm.cost.plant_total.calc", &result)) + make_access_error("SAM_GeothermalCosts", "geotherm.cost.plant_total.calc"); + }); + return result; +} + +SAM_EXPORT double SAM_GeothermalCosts_GeoHourly_geotherm_cost_plm_fixed_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "geotherm.cost.plm.fixed", &result)) + make_access_error("SAM_GeothermalCosts", "geotherm.cost.plm.fixed"); + }); + return result; +} + +SAM_EXPORT double SAM_GeothermalCosts_GeoHourly_geotherm_cost_plm_percent_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "geotherm.cost.plm.percent", &result)) + make_access_error("SAM_GeothermalCosts", "geotherm.cost.plm.percent"); + }); + return result; +} + SAM_EXPORT double SAM_GeothermalCosts_GeoHourly_geotherm_cost_prod_cost_curve_nget(SAM_table ptr, SAM_error *err){ double result; translateExceptions(err, [&]{ @@ -578,6 +824,15 @@ SAM_EXPORT double SAM_GeothermalCosts_GeoHourly_geotherm_cost_prod_cost_curve_we return result; } +SAM_EXPORT double SAM_GeothermalCosts_GeoHourly_geotherm_cost_prod_inj_non_drill_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "geotherm.cost.prod_inj_non_drill", &result)) + make_access_error("SAM_GeothermalCosts", "geotherm.cost.prod_inj_non_drill"); + }); + return result; +} + SAM_EXPORT double SAM_GeothermalCosts_GeoHourly_geotherm_cost_pump_casing_cost_nget(SAM_table ptr, SAM_error *err){ double result; translateExceptions(err, [&]{ @@ -605,6 +860,51 @@ SAM_EXPORT double SAM_GeothermalCosts_GeoHourly_geotherm_cost_pump_per_foot_nget return result; } +SAM_EXPORT double SAM_GeothermalCosts_GeoHourly_geotherm_cost_pumping_amount_specified_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "geotherm.cost.pumping.amount_specified", &result)) + make_access_error("SAM_GeothermalCosts", "geotherm.cost.pumping.amount_specified"); + }); + return result; +} + +SAM_EXPORT double SAM_GeothermalCosts_GeoHourly_geotherm_cost_pumping_calc_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "geotherm.cost.pumping.calc", &result)) + make_access_error("SAM_GeothermalCosts", "geotherm.cost.pumping.calc"); + }); + return result; +} + +SAM_EXPORT double SAM_GeothermalCosts_GeoHourly_geotherm_cost_recap_specified_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "geotherm.cost.recap_specified", &result)) + make_access_error("SAM_GeothermalCosts", "geotherm.cost.recap_specified"); + }); + return result; +} + +SAM_EXPORT double SAM_GeothermalCosts_GeoHourly_geotherm_cost_recap_use_calc_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "geotherm.cost.recap_use_calc", &result)) + make_access_error("SAM_GeothermalCosts", "geotherm.cost.recap_use_calc"); + }); + return result; +} + +SAM_EXPORT double SAM_GeothermalCosts_GeoHourly_geotherm_cost_sales_tax_percent_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "geotherm.cost.sales_tax.percent", &result)) + make_access_error("SAM_GeothermalCosts", "geotherm.cost.sales_tax.percent"); + }); + return result; +} + SAM_EXPORT double SAM_GeothermalCosts_GeoHourly_geotherm_cost_stim_non_drill_nget(SAM_table ptr, SAM_error *err){ double result; translateExceptions(err, [&]{ @@ -668,6 +968,15 @@ SAM_EXPORT double SAM_GeothermalCosts_GeoHourly_ncg_condensate_pump_nget(SAM_tab return result; } +SAM_EXPORT double SAM_GeothermalCosts_GeoHourly_net_plant_output_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "net_plant_output", &result)) + make_access_error("SAM_GeothermalCosts", "net_plant_output"); + }); + return result; +} + SAM_EXPORT double SAM_GeothermalCosts_GeoHourly_num_wells_getem_nget(SAM_table ptr, SAM_error *err){ double result; translateExceptions(err, [&]{ @@ -704,6 +1013,15 @@ SAM_EXPORT double SAM_GeothermalCosts_GeoHourly_num_wells_getem_prod_failed_nget return result; } +SAM_EXPORT double SAM_GeothermalCosts_GeoHourly_num_wells_getem_prod_inj_sum_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "num_wells_getem_prod_inj_sum", &result)) + make_access_error("SAM_GeothermalCosts", "num_wells_getem_prod_inj_sum"); + }); + return result; +} + SAM_EXPORT double SAM_GeothermalCosts_GeoHourly_ppi_base_year_nget(SAM_table ptr, SAM_error *err){ double result; translateExceptions(err, [&]{ @@ -812,6 +1130,15 @@ SAM_EXPORT double SAM_GeothermalCosts_GeoHourly_resource_depth_nget(SAM_table pt return result; } +SAM_EXPORT double SAM_GeothermalCosts_GeoHourly_sales_tax_rate_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "sales_tax_rate", &result)) + make_access_error("SAM_GeothermalCosts", "sales_tax_rate"); + }); + return result; +} + SAM_EXPORT double SAM_GeothermalCosts_GeoHourly_spec_vol_nget(SAM_table ptr, SAM_error *err){ double result; translateExceptions(err, [&]{ @@ -884,6 +1211,24 @@ SAM_EXPORT double SAM_GeothermalCosts_GeoHourly_x_lp_nget(SAM_table ptr, SAM_err return result; } +SAM_EXPORT double SAM_GeothermalCosts_FinancialModel_geo_financial_model_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "geo_financial_model", &result)) + make_access_error("SAM_GeothermalCosts", "geo_financial_model"); + }); + return result; +} + +SAM_EXPORT double SAM_GeothermalCosts_Common_geotherm_cost_plant_total_amount_specified_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "geotherm.cost.plant_total.amount_specified", &result)) + make_access_error("SAM_GeothermalCosts", "geotherm.cost.plant_total.amount_specified"); + }); + return result; +} + SAM_EXPORT double SAM_GeothermalCosts_Outputs_atb_drilling_cost_nget(SAM_table ptr, SAM_error *err){ double result; translateExceptions(err, [&]{ @@ -938,6 +1283,15 @@ SAM_EXPORT double SAM_GeothermalCosts_Outputs_conf_total_cost_nget(SAM_table ptr return result; } +SAM_EXPORT double SAM_GeothermalCosts_Outputs_contingency_cost_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "contingency_cost", &result)) + make_access_error("SAM_GeothermalCosts", "contingency_cost"); + }); + return result; +} + SAM_EXPORT double SAM_GeothermalCosts_Outputs_engineering_cost_nget(SAM_table ptr, SAM_error *err){ double result; translateExceptions(err, [&]{ @@ -947,6 +1301,15 @@ SAM_EXPORT double SAM_GeothermalCosts_Outputs_engineering_cost_nget(SAM_table pt return result; } +SAM_EXPORT double SAM_GeothermalCosts_Outputs_epc_total_cost_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "epc_total_cost", &result)) + make_access_error("SAM_GeothermalCosts", "epc_total_cost"); + }); + return result; +} + SAM_EXPORT double SAM_GeothermalCosts_Outputs_expl_drilling_cost_nget(SAM_table ptr, SAM_error *err){ double result; translateExceptions(err, [&]{ @@ -956,6 +1319,15 @@ SAM_EXPORT double SAM_GeothermalCosts_Outputs_expl_drilling_cost_nget(SAM_table return result; } +SAM_EXPORT double SAM_GeothermalCosts_Outputs_expl_per_well_cost_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "expl_per_well_cost", &result)) + make_access_error("SAM_GeothermalCosts", "expl_per_well_cost"); + }); + return result; +} + SAM_EXPORT double SAM_GeothermalCosts_Outputs_expl_total_cost_nget(SAM_table ptr, SAM_error *err){ double result; translateExceptions(err, [&]{ @@ -974,11 +1346,11 @@ SAM_EXPORT double SAM_GeothermalCosts_Outputs_field_gathering_num_wells_nget(SAM return result; } -SAM_EXPORT double SAM_GeothermalCosts_Outputs_indirect_pump_cost_nget(SAM_table ptr, SAM_error *err){ +SAM_EXPORT double SAM_GeothermalCosts_Outputs_indirect_cost_nget(SAM_table ptr, SAM_error *err){ double result; translateExceptions(err, [&]{ - if (!ssc_data_get_number(ptr, "indirect_pump_cost", &result)) - make_access_error("SAM_GeothermalCosts", "indirect_pump_cost"); + if (!ssc_data_get_number(ptr, "indirect_cost", &result)) + make_access_error("SAM_GeothermalCosts", "indirect_cost"); }); return result; } @@ -1037,6 +1409,15 @@ SAM_EXPORT double SAM_GeothermalCosts_Outputs_inj_well_cost_nget(SAM_table ptr, return result; } +SAM_EXPORT double SAM_GeothermalCosts_Outputs_installed_cost_per_kW_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "installed_cost_per_kW", &result)) + make_access_error("SAM_GeothermalCosts", "installed_cost_per_kW"); + }); + return result; +} + SAM_EXPORT double SAM_GeothermalCosts_Outputs_piping_cost_per_well_nget(SAM_table ptr, SAM_error *err){ double result; translateExceptions(err, [&]{ @@ -1046,6 +1427,24 @@ SAM_EXPORT double SAM_GeothermalCosts_Outputs_piping_cost_per_well_nget(SAM_tabl return result; } +SAM_EXPORT double SAM_GeothermalCosts_Outputs_plm_total_cost_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "plm_total_cost", &result)) + make_access_error("SAM_GeothermalCosts", "plm_total_cost"); + }); + return result; +} + +SAM_EXPORT double SAM_GeothermalCosts_Outputs_prod_inj_total_cost_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "prod_inj_total_cost", &result)) + make_access_error("SAM_GeothermalCosts", "prod_inj_total_cost"); + }); + return result; +} + SAM_EXPORT double SAM_GeothermalCosts_Outputs_prod_pump_cost_nget(SAM_table ptr, SAM_error *err){ double result; translateExceptions(err, [&]{ @@ -1100,6 +1499,15 @@ SAM_EXPORT double SAM_GeothermalCosts_Outputs_pump_only_cost_nget(SAM_table ptr, return result; } +SAM_EXPORT double SAM_GeothermalCosts_Outputs_sales_tax_cost_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "sales_tax_cost", &result)) + make_access_error("SAM_GeothermalCosts", "sales_tax_cost"); + }); + return result; +} + SAM_EXPORT double SAM_GeothermalCosts_Outputs_stim_cost_non_drill_nget(SAM_table ptr, SAM_error *err){ double result; translateExceptions(err, [&]{ @@ -1127,6 +1535,42 @@ SAM_EXPORT double SAM_GeothermalCosts_Outputs_stim_total_cost_nget(SAM_table ptr return result; } +SAM_EXPORT double SAM_GeothermalCosts_Outputs_sum_prod_inj_total_cost_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "sum_prod_inj_total_cost", &result)) + make_access_error("SAM_GeothermalCosts", "sum_prod_inj_total_cost"); + }); + return result; +} + +SAM_EXPORT double SAM_GeothermalCosts_Outputs_system_recapitalization_cost_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "system_recapitalization_cost", &result)) + make_access_error("SAM_GeothermalCosts", "system_recapitalization_cost"); + }); + return result; +} + +SAM_EXPORT double SAM_GeothermalCosts_Outputs_total_capital_cost_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "total_capital_cost", &result)) + make_access_error("SAM_GeothermalCosts", "total_capital_cost"); + }); + return result; +} + +SAM_EXPORT double SAM_GeothermalCosts_Outputs_total_direct_cost_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "total_direct_cost", &result)) + make_access_error("SAM_GeothermalCosts", "total_direct_cost"); + }); + return result; +} + SAM_EXPORT double SAM_GeothermalCosts_Outputs_total_drilling_cost_nget(SAM_table ptr, SAM_error *err){ double result; translateExceptions(err, [&]{ @@ -1136,6 +1580,15 @@ SAM_EXPORT double SAM_GeothermalCosts_Outputs_total_drilling_cost_nget(SAM_table return result; } +SAM_EXPORT double SAM_GeothermalCosts_Outputs_total_drilling_cost_used_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "total_drilling_cost_used", &result)) + make_access_error("SAM_GeothermalCosts", "total_drilling_cost_used"); + }); + return result; +} + SAM_EXPORT double SAM_GeothermalCosts_Outputs_total_drilling_permitting_nget(SAM_table ptr, SAM_error *err){ double result; translateExceptions(err, [&]{ @@ -1163,6 +1616,33 @@ SAM_EXPORT double SAM_GeothermalCosts_Outputs_total_gathering_cost_nget(SAM_tabl return result; } +SAM_EXPORT double SAM_GeothermalCosts_Outputs_total_installed_cost_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "total_installed_cost", &result)) + make_access_error("SAM_GeothermalCosts", "total_installed_cost"); + }); + return result; +} + +SAM_EXPORT double SAM_GeothermalCosts_Outputs_total_plant_cost_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "total_plant_cost", &result)) + make_access_error("SAM_GeothermalCosts", "total_plant_cost"); + }); + return result; +} + +SAM_EXPORT double SAM_GeothermalCosts_Outputs_total_plant_cost_used_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "total_plant_cost_used", &result)) + make_access_error("SAM_GeothermalCosts", "total_plant_cost_used"); + }); + return result; +} + SAM_EXPORT double SAM_GeothermalCosts_Outputs_total_pump_cost_nget(SAM_table ptr, SAM_error *err){ double result; translateExceptions(err, [&]{ @@ -1181,6 +1661,15 @@ SAM_EXPORT double SAM_GeothermalCosts_Outputs_total_pump_gathering_cost_nget(SAM return result; } +SAM_EXPORT double SAM_GeothermalCosts_Outputs_total_pump_gathering_cost_used_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "total_pump_gathering_cost_used", &result)) + make_access_error("SAM_GeothermalCosts", "total_pump_gathering_cost_used"); + }); + return result; +} + SAM_EXPORT double SAM_GeothermalCosts_Outputs_total_surface_equipment_cost_nget(SAM_table ptr, SAM_error *err){ double result; translateExceptions(err, [&]{ diff --git a/api/modules/SAM_GeothermalNoFin.cpp b/api/modules/SAM_GeothermalNoFin.cpp new file mode 100644 index 0000000000..80efbb062c --- /dev/null +++ b/api/modules/SAM_GeothermalNoFin.cpp @@ -0,0 +1,2044 @@ +#include +#include +#include +#include +#include + +#include + +#include "SAM_api.h" +#include "ErrorHandler.h" +#include "SAM_GeothermalNoFin.h" + +SAM_EXPORT int SAM_GeothermalNoFin_execute(SAM_table data, int verbosity, SAM_error* err){ + return SAM_module_exec("geothermal_no_fin", data, verbosity, err); +} + +SAM_EXPORT void SAM_GeothermalNoFin_SystemControl_sim_type_nset(SAM_table ptr, double number, SAM_error *err){ + translateExceptions(err, [&]{ + ssc_data_set_number(ptr, "sim_type", number); + }); +} + +SAM_EXPORT void SAM_GeothermalNoFin_FinancialModel_geo_financial_model_nset(SAM_table ptr, double number, SAM_error *err){ + translateExceptions(err, [&]{ + ssc_data_set_number(ptr, "geo_financial_model", number); + }); +} + +SAM_EXPORT void SAM_GeothermalNoFin_GeoHourly_CT_nset(SAM_table ptr, double number, SAM_error *err){ + translateExceptions(err, [&]{ + ssc_data_set_number(ptr, "CT", number); + }); +} + +SAM_EXPORT void SAM_GeothermalNoFin_GeoHourly_P_boil_nset(SAM_table ptr, double number, SAM_error *err){ + translateExceptions(err, [&]{ + ssc_data_set_number(ptr, "P_boil", number); + }); +} + +SAM_EXPORT void SAM_GeothermalNoFin_GeoHourly_P_cond_min_nset(SAM_table ptr, double number, SAM_error *err){ + translateExceptions(err, [&]{ + ssc_data_set_number(ptr, "P_cond_min", number); + }); +} + +SAM_EXPORT void SAM_GeothermalNoFin_GeoHourly_P_cond_ratio_nset(SAM_table ptr, double number, SAM_error *err){ + translateExceptions(err, [&]{ + ssc_data_set_number(ptr, "P_cond_ratio", number); + }); +} + +SAM_EXPORT void SAM_GeothermalNoFin_GeoHourly_T_ITD_des_nset(SAM_table ptr, double number, SAM_error *err){ + translateExceptions(err, [&]{ + ssc_data_set_number(ptr, "T_ITD_des", number); + }); +} + +SAM_EXPORT void SAM_GeothermalNoFin_GeoHourly_T_amb_des_nset(SAM_table ptr, double number, SAM_error *err){ + translateExceptions(err, [&]{ + ssc_data_set_number(ptr, "T_amb_des", number); + }); +} + +SAM_EXPORT void SAM_GeothermalNoFin_GeoHourly_T_approach_nset(SAM_table ptr, double number, SAM_error *err){ + translateExceptions(err, [&]{ + ssc_data_set_number(ptr, "T_approach", number); + }); +} + +SAM_EXPORT void SAM_GeothermalNoFin_GeoHourly_T_htf_cold_ref_nset(SAM_table ptr, double number, SAM_error *err){ + translateExceptions(err, [&]{ + ssc_data_set_number(ptr, "T_htf_cold_ref", number); + }); +} + +SAM_EXPORT void SAM_GeothermalNoFin_GeoHourly_allow_reservoir_replacements_nset(SAM_table ptr, double number, SAM_error *err){ + translateExceptions(err, [&]{ + ssc_data_set_number(ptr, "allow_reservoir_replacements", number); + }); +} + +SAM_EXPORT void SAM_GeothermalNoFin_GeoHourly_ambient_pressure_nset(SAM_table ptr, double number, SAM_error *err){ + translateExceptions(err, [&]{ + ssc_data_set_number(ptr, "ambient_pressure", number); + }); +} + +SAM_EXPORT void SAM_GeothermalNoFin_GeoHourly_analysis_type_nset(SAM_table ptr, double number, SAM_error *err){ + translateExceptions(err, [&]{ + ssc_data_set_number(ptr, "analysis_type", number); + }); +} + +SAM_EXPORT void SAM_GeothermalNoFin_GeoHourly_conversion_subtype_nset(SAM_table ptr, double number, SAM_error *err){ + translateExceptions(err, [&]{ + ssc_data_set_number(ptr, "conversion_subtype", number); + }); +} + +SAM_EXPORT void SAM_GeothermalNoFin_GeoHourly_conversion_type_nset(SAM_table ptr, double number, SAM_error *err){ + translateExceptions(err, [&]{ + ssc_data_set_number(ptr, "conversion_type", number); + }); +} + +SAM_EXPORT void SAM_GeothermalNoFin_GeoHourly_dT_cw_ref_nset(SAM_table ptr, double number, SAM_error *err){ + translateExceptions(err, [&]{ + ssc_data_set_number(ptr, "dT_cw_ref", number); + }); +} + +SAM_EXPORT void SAM_GeothermalNoFin_GeoHourly_decline_type_nset(SAM_table ptr, double number, SAM_error *err){ + translateExceptions(err, [&]{ + ssc_data_set_number(ptr, "decline_type", number); + }); +} + +SAM_EXPORT void SAM_GeothermalNoFin_GeoHourly_delta_pressure_equip_nset(SAM_table ptr, double number, SAM_error *err){ + translateExceptions(err, [&]{ + ssc_data_set_number(ptr, "delta_pressure_equip", number); + }); +} + +SAM_EXPORT void SAM_GeothermalNoFin_GeoHourly_drilling_success_rate_nset(SAM_table ptr, double number, SAM_error *err){ + translateExceptions(err, [&]{ + ssc_data_set_number(ptr, "drilling_success_rate", number); + }); +} + +SAM_EXPORT void SAM_GeothermalNoFin_GeoHourly_dt_prod_well_nset(SAM_table ptr, double number, SAM_error *err){ + translateExceptions(err, [&]{ + ssc_data_set_number(ptr, "dt_prod_well", number); + }); +} + +SAM_EXPORT void SAM_GeothermalNoFin_GeoHourly_eta_ref_nset(SAM_table ptr, double number, SAM_error *err){ + translateExceptions(err, [&]{ + ssc_data_set_number(ptr, "eta_ref", number); + }); +} + +SAM_EXPORT void SAM_GeothermalNoFin_GeoHourly_excess_pressure_pump_nset(SAM_table ptr, double number, SAM_error *err){ + translateExceptions(err, [&]{ + ssc_data_set_number(ptr, "excess_pressure_pump", number); + }); +} + +SAM_EXPORT void SAM_GeothermalNoFin_GeoHourly_failed_prod_flow_ratio_nset(SAM_table ptr, double number, SAM_error *err){ + translateExceptions(err, [&]{ + ssc_data_set_number(ptr, "failed_prod_flow_ratio", number); + }); +} + +SAM_EXPORT void SAM_GeothermalNoFin_GeoHourly_file_name_sset(SAM_table ptr, const char* str, SAM_error *err){ + translateExceptions(err, [&]{ + ssc_data_set_string(ptr, "file_name", str); + }); +} + +SAM_EXPORT void SAM_GeothermalNoFin_GeoHourly_fracture_angle_nset(SAM_table ptr, double number, SAM_error *err){ + translateExceptions(err, [&]{ + ssc_data_set_number(ptr, "fracture_angle", number); + }); +} + +SAM_EXPORT void SAM_GeothermalNoFin_GeoHourly_fracture_aperature_nset(SAM_table ptr, double number, SAM_error *err){ + translateExceptions(err, [&]{ + ssc_data_set_number(ptr, "fracture_aperature", number); + }); +} + +SAM_EXPORT void SAM_GeothermalNoFin_GeoHourly_fracture_length_nset(SAM_table ptr, double number, SAM_error *err){ + translateExceptions(err, [&]{ + ssc_data_set_number(ptr, "fracture_length", number); + }); +} + +SAM_EXPORT void SAM_GeothermalNoFin_GeoHourly_fracture_spacing_nset(SAM_table ptr, double number, SAM_error *err){ + translateExceptions(err, [&]{ + ssc_data_set_number(ptr, "fracture_spacing", number); + }); +} + +SAM_EXPORT void SAM_GeothermalNoFin_GeoHourly_fracture_width_nset(SAM_table ptr, double number, SAM_error *err){ + translateExceptions(err, [&]{ + ssc_data_set_number(ptr, "fracture_width", number); + }); +} + +SAM_EXPORT void SAM_GeothermalNoFin_GeoHourly_geotherm_cost_conf_num_wells_nset(SAM_table ptr, double number, SAM_error *err){ + translateExceptions(err, [&]{ + ssc_data_set_number(ptr, "geotherm.cost.conf_num_wells", number); + }); +} + +SAM_EXPORT void SAM_GeothermalNoFin_GeoHourly_geotherm_cost_confirm_wells_percent_nset(SAM_table ptr, double number, SAM_error *err){ + translateExceptions(err, [&]{ + ssc_data_set_number(ptr, "geotherm.cost.confirm_wells_percent", number); + }); +} + +SAM_EXPORT void SAM_GeothermalNoFin_GeoHourly_geotherm_cost_inj_cost_curve_welldiam_nset(SAM_table ptr, double number, SAM_error *err){ + translateExceptions(err, [&]{ + ssc_data_set_number(ptr, "geotherm.cost.inj_cost_curve_welldiam", number); + }); +} + +SAM_EXPORT void SAM_GeothermalNoFin_GeoHourly_geotherm_cost_inj_cost_curve_welltype_nset(SAM_table ptr, double number, SAM_error *err){ + translateExceptions(err, [&]{ + ssc_data_set_number(ptr, "geotherm.cost.inj_cost_curve_welltype", number); + }); +} + +SAM_EXPORT void SAM_GeothermalNoFin_GeoHourly_geotherm_cost_inj_prod_well_ratio_nset(SAM_table ptr, double number, SAM_error *err){ + translateExceptions(err, [&]{ + ssc_data_set_number(ptr, "geotherm.cost.inj_prod_well_ratio", number); + }); +} + +SAM_EXPORT void SAM_GeothermalNoFin_GeoHourly_geotherm_cost_prod_cost_curve_welldiam_nset(SAM_table ptr, double number, SAM_error *err){ + translateExceptions(err, [&]{ + ssc_data_set_number(ptr, "geotherm.cost.prod_cost_curve_welldiam", number); + }); +} + +SAM_EXPORT void SAM_GeothermalNoFin_GeoHourly_geotherm_cost_prod_cost_curve_welltype_nset(SAM_table ptr, double number, SAM_error *err){ + translateExceptions(err, [&]{ + ssc_data_set_number(ptr, "geotherm.cost.prod_cost_curve_welltype", number); + }); +} + +SAM_EXPORT void SAM_GeothermalNoFin_GeoHourly_hc_ctl1_nset(SAM_table ptr, double number, SAM_error *err){ + translateExceptions(err, [&]{ + ssc_data_set_number(ptr, "hc_ctl1", number); + }); +} + +SAM_EXPORT void SAM_GeothermalNoFin_GeoHourly_hc_ctl2_nset(SAM_table ptr, double number, SAM_error *err){ + translateExceptions(err, [&]{ + ssc_data_set_number(ptr, "hc_ctl2", number); + }); +} + +SAM_EXPORT void SAM_GeothermalNoFin_GeoHourly_hc_ctl3_nset(SAM_table ptr, double number, SAM_error *err){ + translateExceptions(err, [&]{ + ssc_data_set_number(ptr, "hc_ctl3", number); + }); +} + +SAM_EXPORT void SAM_GeothermalNoFin_GeoHourly_hc_ctl4_nset(SAM_table ptr, double number, SAM_error *err){ + translateExceptions(err, [&]{ + ssc_data_set_number(ptr, "hc_ctl4", number); + }); +} + +SAM_EXPORT void SAM_GeothermalNoFin_GeoHourly_hc_ctl5_nset(SAM_table ptr, double number, SAM_error *err){ + translateExceptions(err, [&]{ + ssc_data_set_number(ptr, "hc_ctl5", number); + }); +} + +SAM_EXPORT void SAM_GeothermalNoFin_GeoHourly_hc_ctl6_nset(SAM_table ptr, double number, SAM_error *err){ + translateExceptions(err, [&]{ + ssc_data_set_number(ptr, "hc_ctl6", number); + }); +} + +SAM_EXPORT void SAM_GeothermalNoFin_GeoHourly_hc_ctl7_nset(SAM_table ptr, double number, SAM_error *err){ + translateExceptions(err, [&]{ + ssc_data_set_number(ptr, "hc_ctl7", number); + }); +} + +SAM_EXPORT void SAM_GeothermalNoFin_GeoHourly_hc_ctl8_nset(SAM_table ptr, double number, SAM_error *err){ + translateExceptions(err, [&]{ + ssc_data_set_number(ptr, "hc_ctl8", number); + }); +} + +SAM_EXPORT void SAM_GeothermalNoFin_GeoHourly_hc_ctl9_nset(SAM_table ptr, double number, SAM_error *err){ + translateExceptions(err, [&]{ + ssc_data_set_number(ptr, "hc_ctl9", number); + }); +} + +SAM_EXPORT void SAM_GeothermalNoFin_GeoHourly_hr_pl_nlev_nset(SAM_table ptr, double number, SAM_error *err){ + translateExceptions(err, [&]{ + ssc_data_set_number(ptr, "hr_pl_nlev", number); + }); +} + +SAM_EXPORT void SAM_GeothermalNoFin_GeoHourly_hybrid_dispatch_schedule_sset(SAM_table ptr, const char* str, SAM_error *err){ + translateExceptions(err, [&]{ + ssc_data_set_string(ptr, "hybrid_dispatch_schedule", str); + }); +} + +SAM_EXPORT void SAM_GeothermalNoFin_GeoHourly_inj_prod_well_distance_nset(SAM_table ptr, double number, SAM_error *err){ + translateExceptions(err, [&]{ + ssc_data_set_number(ptr, "inj_prod_well_distance", number); + }); +} + +SAM_EXPORT void SAM_GeothermalNoFin_GeoHourly_injectivity_index_nset(SAM_table ptr, double number, SAM_error *err){ + translateExceptions(err, [&]{ + ssc_data_set_number(ptr, "injectivity_index", number); + }); +} + +SAM_EXPORT void SAM_GeothermalNoFin_GeoHourly_model_choice_nset(SAM_table ptr, double number, SAM_error *err){ + translateExceptions(err, [&]{ + ssc_data_set_number(ptr, "model_choice", number); + }); +} + +SAM_EXPORT void SAM_GeothermalNoFin_GeoHourly_nameplate_nset(SAM_table ptr, double number, SAM_error *err){ + translateExceptions(err, [&]{ + ssc_data_set_number(ptr, "nameplate", number); + }); +} + +SAM_EXPORT void SAM_GeothermalNoFin_GeoHourly_num_fractures_nset(SAM_table ptr, double number, SAM_error *err){ + translateExceptions(err, [&]{ + ssc_data_set_number(ptr, "num_fractures", number); + }); +} + +SAM_EXPORT void SAM_GeothermalNoFin_GeoHourly_num_wells_nset(SAM_table ptr, double number, SAM_error *err){ + translateExceptions(err, [&]{ + ssc_data_set_number(ptr, "num_wells", number); + }); +} + +SAM_EXPORT void SAM_GeothermalNoFin_GeoHourly_pb_bd_frac_nset(SAM_table ptr, double number, SAM_error *err){ + translateExceptions(err, [&]{ + ssc_data_set_number(ptr, "pb_bd_frac", number); + }); +} + +SAM_EXPORT void SAM_GeothermalNoFin_GeoHourly_plant_efficiency_input_nset(SAM_table ptr, double number, SAM_error *err){ + translateExceptions(err, [&]{ + ssc_data_set_number(ptr, "plant_efficiency_input", number); + }); +} + +SAM_EXPORT void SAM_GeothermalNoFin_GeoHourly_prod_well_choice_nset(SAM_table ptr, double number, SAM_error *err){ + translateExceptions(err, [&]{ + ssc_data_set_number(ptr, "prod_well_choice", number); + }); +} + +SAM_EXPORT void SAM_GeothermalNoFin_GeoHourly_pump_efficiency_nset(SAM_table ptr, double number, SAM_error *err){ + translateExceptions(err, [&]{ + ssc_data_set_number(ptr, "pump_efficiency", number); + }); +} + +SAM_EXPORT void SAM_GeothermalNoFin_GeoHourly_q_sby_frac_nset(SAM_table ptr, double number, SAM_error *err){ + translateExceptions(err, [&]{ + ssc_data_set_number(ptr, "q_sby_frac", number); + }); +} + +SAM_EXPORT void SAM_GeothermalNoFin_GeoHourly_reservoir_height_nset(SAM_table ptr, double number, SAM_error *err){ + translateExceptions(err, [&]{ + ssc_data_set_number(ptr, "reservoir_height", number); + }); +} + +SAM_EXPORT void SAM_GeothermalNoFin_GeoHourly_reservoir_model_inputs_mset(SAM_table ptr, double* mat, int nrows, int ncols, SAM_error *err){ + translateExceptions(err, [&]{ + ssc_data_set_matrix(ptr, "reservoir_model_inputs", mat, nrows, ncols); + }); +} + +SAM_EXPORT void SAM_GeothermalNoFin_GeoHourly_reservoir_permeability_nset(SAM_table ptr, double number, SAM_error *err){ + translateExceptions(err, [&]{ + ssc_data_set_number(ptr, "reservoir_permeability", number); + }); +} + +SAM_EXPORT void SAM_GeothermalNoFin_GeoHourly_reservoir_pressure_change_nset(SAM_table ptr, double number, SAM_error *err){ + translateExceptions(err, [&]{ + ssc_data_set_number(ptr, "reservoir_pressure_change", number); + }); +} + +SAM_EXPORT void SAM_GeothermalNoFin_GeoHourly_reservoir_pressure_change_type_nset(SAM_table ptr, double number, SAM_error *err){ + translateExceptions(err, [&]{ + ssc_data_set_number(ptr, "reservoir_pressure_change_type", number); + }); +} + +SAM_EXPORT void SAM_GeothermalNoFin_GeoHourly_reservoir_width_nset(SAM_table ptr, double number, SAM_error *err){ + translateExceptions(err, [&]{ + ssc_data_set_number(ptr, "reservoir_width", number); + }); +} + +SAM_EXPORT void SAM_GeothermalNoFin_GeoHourly_resource_depth_nset(SAM_table ptr, double number, SAM_error *err){ + translateExceptions(err, [&]{ + ssc_data_set_number(ptr, "resource_depth", number); + }); +} + +SAM_EXPORT void SAM_GeothermalNoFin_GeoHourly_resource_potential_nset(SAM_table ptr, double number, SAM_error *err){ + translateExceptions(err, [&]{ + ssc_data_set_number(ptr, "resource_potential", number); + }); +} + +SAM_EXPORT void SAM_GeothermalNoFin_GeoHourly_resource_temp_nset(SAM_table ptr, double number, SAM_error *err){ + translateExceptions(err, [&]{ + ssc_data_set_number(ptr, "resource_temp", number); + }); +} + +SAM_EXPORT void SAM_GeothermalNoFin_GeoHourly_resource_type_nset(SAM_table ptr, double number, SAM_error *err){ + translateExceptions(err, [&]{ + ssc_data_set_number(ptr, "resource_type", number); + }); +} + +SAM_EXPORT void SAM_GeothermalNoFin_GeoHourly_rock_density_nset(SAM_table ptr, double number, SAM_error *err){ + translateExceptions(err, [&]{ + ssc_data_set_number(ptr, "rock_density", number); + }); +} + +SAM_EXPORT void SAM_GeothermalNoFin_GeoHourly_rock_specific_heat_nset(SAM_table ptr, double number, SAM_error *err){ + translateExceptions(err, [&]{ + ssc_data_set_number(ptr, "rock_specific_heat", number); + }); +} + +SAM_EXPORT void SAM_GeothermalNoFin_GeoHourly_rock_thermal_conductivity_nset(SAM_table ptr, double number, SAM_error *err){ + translateExceptions(err, [&]{ + ssc_data_set_number(ptr, "rock_thermal_conductivity", number); + }); +} + +SAM_EXPORT void SAM_GeothermalNoFin_GeoHourly_specified_pump_work_amount_nset(SAM_table ptr, double number, SAM_error *err){ + translateExceptions(err, [&]{ + ssc_data_set_number(ptr, "specified_pump_work_amount", number); + }); +} + +SAM_EXPORT void SAM_GeothermalNoFin_GeoHourly_specify_pump_work_nset(SAM_table ptr, double number, SAM_error *err){ + translateExceptions(err, [&]{ + ssc_data_set_number(ptr, "specify_pump_work", number); + }); +} + +SAM_EXPORT void SAM_GeothermalNoFin_GeoHourly_start_day_of_year_nset(SAM_table ptr, double number, SAM_error *err){ + translateExceptions(err, [&]{ + ssc_data_set_number(ptr, "start_day_of_year", number); + }); +} + +SAM_EXPORT void SAM_GeothermalNoFin_GeoHourly_startup_frac_nset(SAM_table ptr, double number, SAM_error *err){ + translateExceptions(err, [&]{ + ssc_data_set_number(ptr, "startup_frac", number); + }); +} + +SAM_EXPORT void SAM_GeothermalNoFin_GeoHourly_startup_time_nset(SAM_table ptr, double number, SAM_error *err){ + translateExceptions(err, [&]{ + ssc_data_set_number(ptr, "startup_time", number); + }); +} + +SAM_EXPORT void SAM_GeothermalNoFin_GeoHourly_stim_success_rate_nset(SAM_table ptr, double number, SAM_error *err){ + translateExceptions(err, [&]{ + ssc_data_set_number(ptr, "stim_success_rate", number); + }); +} + +SAM_EXPORT void SAM_GeothermalNoFin_GeoHourly_stimulation_type_nset(SAM_table ptr, double number, SAM_error *err){ + translateExceptions(err, [&]{ + ssc_data_set_number(ptr, "stimulation_type", number); + }); +} + +SAM_EXPORT void SAM_GeothermalNoFin_GeoHourly_subsurface_water_loss_nset(SAM_table ptr, double number, SAM_error *err){ + translateExceptions(err, [&]{ + ssc_data_set_number(ptr, "subsurface_water_loss", number); + }); +} + +SAM_EXPORT void SAM_GeothermalNoFin_GeoHourly_temp_decline_max_nset(SAM_table ptr, double number, SAM_error *err){ + translateExceptions(err, [&]{ + ssc_data_set_number(ptr, "temp_decline_max", number); + }); +} + +SAM_EXPORT void SAM_GeothermalNoFin_GeoHourly_temp_decline_rate_nset(SAM_table ptr, double number, SAM_error *err){ + translateExceptions(err, [&]{ + ssc_data_set_number(ptr, "temp_decline_rate", number); + }); +} + +SAM_EXPORT void SAM_GeothermalNoFin_GeoHourly_use_weather_file_conditions_nset(SAM_table ptr, double number, SAM_error *err){ + translateExceptions(err, [&]{ + ssc_data_set_number(ptr, "use_weather_file_conditions", number); + }); +} + +SAM_EXPORT void SAM_GeothermalNoFin_GeoHourly_well_flow_rate_nset(SAM_table ptr, double number, SAM_error *err){ + translateExceptions(err, [&]{ + ssc_data_set_number(ptr, "well_flow_rate", number); + }); +} + +SAM_EXPORT void SAM_GeothermalNoFin_GeoHourly_wet_bulb_temp_nset(SAM_table ptr, double number, SAM_error *err){ + translateExceptions(err, [&]{ + ssc_data_set_number(ptr, "wet_bulb_temp", number); + }); +} + +SAM_EXPORT void SAM_GeothermalNoFin_AdjustmentFactors_adjust_constant_nset(SAM_table ptr, double number, SAM_error *err){ + translateExceptions(err, [&]{ + ssc_data_set_number(ptr, "adjust_constant", number); + }); +} + +SAM_EXPORT void SAM_GeothermalNoFin_AdjustmentFactors_adjust_en_periods_nset(SAM_table ptr, double number, SAM_error *err){ + translateExceptions(err, [&]{ + ssc_data_set_number(ptr, "adjust_en_periods", number); + }); +} + +SAM_EXPORT void SAM_GeothermalNoFin_AdjustmentFactors_adjust_en_timeindex_nset(SAM_table ptr, double number, SAM_error *err){ + translateExceptions(err, [&]{ + ssc_data_set_number(ptr, "adjust_en_timeindex", number); + }); +} + +SAM_EXPORT void SAM_GeothermalNoFin_AdjustmentFactors_adjust_periods_mset(SAM_table ptr, double* mat, int nrows, int ncols, SAM_error *err){ + translateExceptions(err, [&]{ + ssc_data_set_matrix(ptr, "adjust_periods", mat, nrows, ncols); + }); +} + +SAM_EXPORT void SAM_GeothermalNoFin_AdjustmentFactors_adjust_timeindex_aset(SAM_table ptr, double* arr, int length, SAM_error *err){ + translateExceptions(err, [&]{ + ssc_data_set_array(ptr, "adjust_timeindex", arr, length); + }); +} + +SAM_EXPORT double SAM_GeothermalNoFin_SystemControl_sim_type_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "sim_type", &result)) + make_access_error("SAM_GeothermalNoFin", "sim_type"); + }); + return result; +} + +SAM_EXPORT double SAM_GeothermalNoFin_FinancialModel_geo_financial_model_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "geo_financial_model", &result)) + make_access_error("SAM_GeothermalNoFin", "geo_financial_model"); + }); + return result; +} + +SAM_EXPORT double SAM_GeothermalNoFin_GeoHourly_CT_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "CT", &result)) + make_access_error("SAM_GeothermalNoFin", "CT"); + }); + return result; +} + +SAM_EXPORT double SAM_GeothermalNoFin_GeoHourly_P_boil_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "P_boil", &result)) + make_access_error("SAM_GeothermalNoFin", "P_boil"); + }); + return result; +} + +SAM_EXPORT double SAM_GeothermalNoFin_GeoHourly_P_cond_min_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "P_cond_min", &result)) + make_access_error("SAM_GeothermalNoFin", "P_cond_min"); + }); + return result; +} + +SAM_EXPORT double SAM_GeothermalNoFin_GeoHourly_P_cond_ratio_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "P_cond_ratio", &result)) + make_access_error("SAM_GeothermalNoFin", "P_cond_ratio"); + }); + return result; +} + +SAM_EXPORT double SAM_GeothermalNoFin_GeoHourly_T_ITD_des_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "T_ITD_des", &result)) + make_access_error("SAM_GeothermalNoFin", "T_ITD_des"); + }); + return result; +} + +SAM_EXPORT double SAM_GeothermalNoFin_GeoHourly_T_amb_des_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "T_amb_des", &result)) + make_access_error("SAM_GeothermalNoFin", "T_amb_des"); + }); + return result; +} + +SAM_EXPORT double SAM_GeothermalNoFin_GeoHourly_T_approach_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "T_approach", &result)) + make_access_error("SAM_GeothermalNoFin", "T_approach"); + }); + return result; +} + +SAM_EXPORT double SAM_GeothermalNoFin_GeoHourly_T_htf_cold_ref_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "T_htf_cold_ref", &result)) + make_access_error("SAM_GeothermalNoFin", "T_htf_cold_ref"); + }); + return result; +} + +SAM_EXPORT double SAM_GeothermalNoFin_GeoHourly_allow_reservoir_replacements_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "allow_reservoir_replacements", &result)) + make_access_error("SAM_GeothermalNoFin", "allow_reservoir_replacements"); + }); + return result; +} + +SAM_EXPORT double SAM_GeothermalNoFin_GeoHourly_ambient_pressure_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "ambient_pressure", &result)) + make_access_error("SAM_GeothermalNoFin", "ambient_pressure"); + }); + return result; +} + +SAM_EXPORT double SAM_GeothermalNoFin_GeoHourly_analysis_type_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "analysis_type", &result)) + make_access_error("SAM_GeothermalNoFin", "analysis_type"); + }); + return result; +} + +SAM_EXPORT double SAM_GeothermalNoFin_GeoHourly_conversion_subtype_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "conversion_subtype", &result)) + make_access_error("SAM_GeothermalNoFin", "conversion_subtype"); + }); + return result; +} + +SAM_EXPORT double SAM_GeothermalNoFin_GeoHourly_conversion_type_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "conversion_type", &result)) + make_access_error("SAM_GeothermalNoFin", "conversion_type"); + }); + return result; +} + +SAM_EXPORT double SAM_GeothermalNoFin_GeoHourly_dT_cw_ref_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "dT_cw_ref", &result)) + make_access_error("SAM_GeothermalNoFin", "dT_cw_ref"); + }); + return result; +} + +SAM_EXPORT double SAM_GeothermalNoFin_GeoHourly_decline_type_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "decline_type", &result)) + make_access_error("SAM_GeothermalNoFin", "decline_type"); + }); + return result; +} + +SAM_EXPORT double SAM_GeothermalNoFin_GeoHourly_delta_pressure_equip_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "delta_pressure_equip", &result)) + make_access_error("SAM_GeothermalNoFin", "delta_pressure_equip"); + }); + return result; +} + +SAM_EXPORT double SAM_GeothermalNoFin_GeoHourly_drilling_success_rate_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "drilling_success_rate", &result)) + make_access_error("SAM_GeothermalNoFin", "drilling_success_rate"); + }); + return result; +} + +SAM_EXPORT double SAM_GeothermalNoFin_GeoHourly_dt_prod_well_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "dt_prod_well", &result)) + make_access_error("SAM_GeothermalNoFin", "dt_prod_well"); + }); + return result; +} + +SAM_EXPORT double SAM_GeothermalNoFin_GeoHourly_eta_ref_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "eta_ref", &result)) + make_access_error("SAM_GeothermalNoFin", "eta_ref"); + }); + return result; +} + +SAM_EXPORT double SAM_GeothermalNoFin_GeoHourly_excess_pressure_pump_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "excess_pressure_pump", &result)) + make_access_error("SAM_GeothermalNoFin", "excess_pressure_pump"); + }); + return result; +} + +SAM_EXPORT double SAM_GeothermalNoFin_GeoHourly_failed_prod_flow_ratio_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "failed_prod_flow_ratio", &result)) + make_access_error("SAM_GeothermalNoFin", "failed_prod_flow_ratio"); + }); + return result; +} + +SAM_EXPORT const char* SAM_GeothermalNoFin_GeoHourly_file_name_sget(SAM_table ptr, SAM_error *err){ + const char* result = nullptr; + translateExceptions(err, [&]{ + result = ssc_data_get_string(ptr, "file_name"); + if (!result) + make_access_error("SAM_GeothermalNoFin", "file_name"); + }); + return result; +} + +SAM_EXPORT double SAM_GeothermalNoFin_GeoHourly_fracture_angle_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "fracture_angle", &result)) + make_access_error("SAM_GeothermalNoFin", "fracture_angle"); + }); + return result; +} + +SAM_EXPORT double SAM_GeothermalNoFin_GeoHourly_fracture_aperature_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "fracture_aperature", &result)) + make_access_error("SAM_GeothermalNoFin", "fracture_aperature"); + }); + return result; +} + +SAM_EXPORT double SAM_GeothermalNoFin_GeoHourly_fracture_length_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "fracture_length", &result)) + make_access_error("SAM_GeothermalNoFin", "fracture_length"); + }); + return result; +} + +SAM_EXPORT double SAM_GeothermalNoFin_GeoHourly_fracture_spacing_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "fracture_spacing", &result)) + make_access_error("SAM_GeothermalNoFin", "fracture_spacing"); + }); + return result; +} + +SAM_EXPORT double SAM_GeothermalNoFin_GeoHourly_fracture_width_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "fracture_width", &result)) + make_access_error("SAM_GeothermalNoFin", "fracture_width"); + }); + return result; +} + +SAM_EXPORT double SAM_GeothermalNoFin_GeoHourly_geotherm_cost_conf_num_wells_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "geotherm.cost.conf_num_wells", &result)) + make_access_error("SAM_GeothermalNoFin", "geotherm.cost.conf_num_wells"); + }); + return result; +} + +SAM_EXPORT double SAM_GeothermalNoFin_GeoHourly_geotherm_cost_confirm_wells_percent_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "geotherm.cost.confirm_wells_percent", &result)) + make_access_error("SAM_GeothermalNoFin", "geotherm.cost.confirm_wells_percent"); + }); + return result; +} + +SAM_EXPORT double SAM_GeothermalNoFin_GeoHourly_geotherm_cost_inj_cost_curve_welldiam_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "geotherm.cost.inj_cost_curve_welldiam", &result)) + make_access_error("SAM_GeothermalNoFin", "geotherm.cost.inj_cost_curve_welldiam"); + }); + return result; +} + +SAM_EXPORT double SAM_GeothermalNoFin_GeoHourly_geotherm_cost_inj_cost_curve_welltype_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "geotherm.cost.inj_cost_curve_welltype", &result)) + make_access_error("SAM_GeothermalNoFin", "geotherm.cost.inj_cost_curve_welltype"); + }); + return result; +} + +SAM_EXPORT double SAM_GeothermalNoFin_GeoHourly_geotherm_cost_inj_prod_well_ratio_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "geotherm.cost.inj_prod_well_ratio", &result)) + make_access_error("SAM_GeothermalNoFin", "geotherm.cost.inj_prod_well_ratio"); + }); + return result; +} + +SAM_EXPORT double SAM_GeothermalNoFin_GeoHourly_geotherm_cost_prod_cost_curve_welldiam_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "geotherm.cost.prod_cost_curve_welldiam", &result)) + make_access_error("SAM_GeothermalNoFin", "geotherm.cost.prod_cost_curve_welldiam"); + }); + return result; +} + +SAM_EXPORT double SAM_GeothermalNoFin_GeoHourly_geotherm_cost_prod_cost_curve_welltype_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "geotherm.cost.prod_cost_curve_welltype", &result)) + make_access_error("SAM_GeothermalNoFin", "geotherm.cost.prod_cost_curve_welltype"); + }); + return result; +} + +SAM_EXPORT double SAM_GeothermalNoFin_GeoHourly_hc_ctl1_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "hc_ctl1", &result)) + make_access_error("SAM_GeothermalNoFin", "hc_ctl1"); + }); + return result; +} + +SAM_EXPORT double SAM_GeothermalNoFin_GeoHourly_hc_ctl2_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "hc_ctl2", &result)) + make_access_error("SAM_GeothermalNoFin", "hc_ctl2"); + }); + return result; +} + +SAM_EXPORT double SAM_GeothermalNoFin_GeoHourly_hc_ctl3_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "hc_ctl3", &result)) + make_access_error("SAM_GeothermalNoFin", "hc_ctl3"); + }); + return result; +} + +SAM_EXPORT double SAM_GeothermalNoFin_GeoHourly_hc_ctl4_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "hc_ctl4", &result)) + make_access_error("SAM_GeothermalNoFin", "hc_ctl4"); + }); + return result; +} + +SAM_EXPORT double SAM_GeothermalNoFin_GeoHourly_hc_ctl5_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "hc_ctl5", &result)) + make_access_error("SAM_GeothermalNoFin", "hc_ctl5"); + }); + return result; +} + +SAM_EXPORT double SAM_GeothermalNoFin_GeoHourly_hc_ctl6_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "hc_ctl6", &result)) + make_access_error("SAM_GeothermalNoFin", "hc_ctl6"); + }); + return result; +} + +SAM_EXPORT double SAM_GeothermalNoFin_GeoHourly_hc_ctl7_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "hc_ctl7", &result)) + make_access_error("SAM_GeothermalNoFin", "hc_ctl7"); + }); + return result; +} + +SAM_EXPORT double SAM_GeothermalNoFin_GeoHourly_hc_ctl8_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "hc_ctl8", &result)) + make_access_error("SAM_GeothermalNoFin", "hc_ctl8"); + }); + return result; +} + +SAM_EXPORT double SAM_GeothermalNoFin_GeoHourly_hc_ctl9_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "hc_ctl9", &result)) + make_access_error("SAM_GeothermalNoFin", "hc_ctl9"); + }); + return result; +} + +SAM_EXPORT double SAM_GeothermalNoFin_GeoHourly_hr_pl_nlev_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "hr_pl_nlev", &result)) + make_access_error("SAM_GeothermalNoFin", "hr_pl_nlev"); + }); + return result; +} + +SAM_EXPORT const char* SAM_GeothermalNoFin_GeoHourly_hybrid_dispatch_schedule_sget(SAM_table ptr, SAM_error *err){ + const char* result = nullptr; + translateExceptions(err, [&]{ + result = ssc_data_get_string(ptr, "hybrid_dispatch_schedule"); + if (!result) + make_access_error("SAM_GeothermalNoFin", "hybrid_dispatch_schedule"); + }); + return result; +} + +SAM_EXPORT double SAM_GeothermalNoFin_GeoHourly_inj_prod_well_distance_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "inj_prod_well_distance", &result)) + make_access_error("SAM_GeothermalNoFin", "inj_prod_well_distance"); + }); + return result; +} + +SAM_EXPORT double SAM_GeothermalNoFin_GeoHourly_injectivity_index_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "injectivity_index", &result)) + make_access_error("SAM_GeothermalNoFin", "injectivity_index"); + }); + return result; +} + +SAM_EXPORT double SAM_GeothermalNoFin_GeoHourly_model_choice_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "model_choice", &result)) + make_access_error("SAM_GeothermalNoFin", "model_choice"); + }); + return result; +} + +SAM_EXPORT double SAM_GeothermalNoFin_GeoHourly_nameplate_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "nameplate", &result)) + make_access_error("SAM_GeothermalNoFin", "nameplate"); + }); + return result; +} + +SAM_EXPORT double SAM_GeothermalNoFin_GeoHourly_num_fractures_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "num_fractures", &result)) + make_access_error("SAM_GeothermalNoFin", "num_fractures"); + }); + return result; +} + +SAM_EXPORT double SAM_GeothermalNoFin_GeoHourly_num_wells_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "num_wells", &result)) + make_access_error("SAM_GeothermalNoFin", "num_wells"); + }); + return result; +} + +SAM_EXPORT double SAM_GeothermalNoFin_GeoHourly_pb_bd_frac_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "pb_bd_frac", &result)) + make_access_error("SAM_GeothermalNoFin", "pb_bd_frac"); + }); + return result; +} + +SAM_EXPORT double SAM_GeothermalNoFin_GeoHourly_plant_efficiency_input_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "plant_efficiency_input", &result)) + make_access_error("SAM_GeothermalNoFin", "plant_efficiency_input"); + }); + return result; +} + +SAM_EXPORT double SAM_GeothermalNoFin_GeoHourly_prod_well_choice_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "prod_well_choice", &result)) + make_access_error("SAM_GeothermalNoFin", "prod_well_choice"); + }); + return result; +} + +SAM_EXPORT double SAM_GeothermalNoFin_GeoHourly_pump_efficiency_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "pump_efficiency", &result)) + make_access_error("SAM_GeothermalNoFin", "pump_efficiency"); + }); + return result; +} + +SAM_EXPORT double SAM_GeothermalNoFin_GeoHourly_q_sby_frac_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "q_sby_frac", &result)) + make_access_error("SAM_GeothermalNoFin", "q_sby_frac"); + }); + return result; +} + +SAM_EXPORT double SAM_GeothermalNoFin_GeoHourly_reservoir_height_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "reservoir_height", &result)) + make_access_error("SAM_GeothermalNoFin", "reservoir_height"); + }); + return result; +} + +SAM_EXPORT double* SAM_GeothermalNoFin_GeoHourly_reservoir_model_inputs_mget(SAM_table ptr, int* nrows, int* ncols, SAM_error *err){ + double* result = nullptr; + translateExceptions(err, [&]{ + result = ssc_data_get_matrix(ptr, "reservoir_model_inputs", nrows, ncols); + if (!result) + make_access_error("SAM_GeothermalNoFin", "reservoir_model_inputs"); + }); + return result; +} + +SAM_EXPORT double SAM_GeothermalNoFin_GeoHourly_reservoir_permeability_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "reservoir_permeability", &result)) + make_access_error("SAM_GeothermalNoFin", "reservoir_permeability"); + }); + return result; +} + +SAM_EXPORT double SAM_GeothermalNoFin_GeoHourly_reservoir_pressure_change_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "reservoir_pressure_change", &result)) + make_access_error("SAM_GeothermalNoFin", "reservoir_pressure_change"); + }); + return result; +} + +SAM_EXPORT double SAM_GeothermalNoFin_GeoHourly_reservoir_pressure_change_type_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "reservoir_pressure_change_type", &result)) + make_access_error("SAM_GeothermalNoFin", "reservoir_pressure_change_type"); + }); + return result; +} + +SAM_EXPORT double SAM_GeothermalNoFin_GeoHourly_reservoir_width_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "reservoir_width", &result)) + make_access_error("SAM_GeothermalNoFin", "reservoir_width"); + }); + return result; +} + +SAM_EXPORT double SAM_GeothermalNoFin_GeoHourly_resource_depth_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "resource_depth", &result)) + make_access_error("SAM_GeothermalNoFin", "resource_depth"); + }); + return result; +} + +SAM_EXPORT double SAM_GeothermalNoFin_GeoHourly_resource_potential_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "resource_potential", &result)) + make_access_error("SAM_GeothermalNoFin", "resource_potential"); + }); + return result; +} + +SAM_EXPORT double SAM_GeothermalNoFin_GeoHourly_resource_temp_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "resource_temp", &result)) + make_access_error("SAM_GeothermalNoFin", "resource_temp"); + }); + return result; +} + +SAM_EXPORT double SAM_GeothermalNoFin_GeoHourly_resource_type_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "resource_type", &result)) + make_access_error("SAM_GeothermalNoFin", "resource_type"); + }); + return result; +} + +SAM_EXPORT double SAM_GeothermalNoFin_GeoHourly_rock_density_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "rock_density", &result)) + make_access_error("SAM_GeothermalNoFin", "rock_density"); + }); + return result; +} + +SAM_EXPORT double SAM_GeothermalNoFin_GeoHourly_rock_specific_heat_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "rock_specific_heat", &result)) + make_access_error("SAM_GeothermalNoFin", "rock_specific_heat"); + }); + return result; +} + +SAM_EXPORT double SAM_GeothermalNoFin_GeoHourly_rock_thermal_conductivity_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "rock_thermal_conductivity", &result)) + make_access_error("SAM_GeothermalNoFin", "rock_thermal_conductivity"); + }); + return result; +} + +SAM_EXPORT double SAM_GeothermalNoFin_GeoHourly_specified_pump_work_amount_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "specified_pump_work_amount", &result)) + make_access_error("SAM_GeothermalNoFin", "specified_pump_work_amount"); + }); + return result; +} + +SAM_EXPORT double SAM_GeothermalNoFin_GeoHourly_specify_pump_work_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "specify_pump_work", &result)) + make_access_error("SAM_GeothermalNoFin", "specify_pump_work"); + }); + return result; +} + +SAM_EXPORT double SAM_GeothermalNoFin_GeoHourly_start_day_of_year_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "start_day_of_year", &result)) + make_access_error("SAM_GeothermalNoFin", "start_day_of_year"); + }); + return result; +} + +SAM_EXPORT double SAM_GeothermalNoFin_GeoHourly_startup_frac_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "startup_frac", &result)) + make_access_error("SAM_GeothermalNoFin", "startup_frac"); + }); + return result; +} + +SAM_EXPORT double SAM_GeothermalNoFin_GeoHourly_startup_time_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "startup_time", &result)) + make_access_error("SAM_GeothermalNoFin", "startup_time"); + }); + return result; +} + +SAM_EXPORT double SAM_GeothermalNoFin_GeoHourly_stim_success_rate_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "stim_success_rate", &result)) + make_access_error("SAM_GeothermalNoFin", "stim_success_rate"); + }); + return result; +} + +SAM_EXPORT double SAM_GeothermalNoFin_GeoHourly_stimulation_type_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "stimulation_type", &result)) + make_access_error("SAM_GeothermalNoFin", "stimulation_type"); + }); + return result; +} + +SAM_EXPORT double SAM_GeothermalNoFin_GeoHourly_subsurface_water_loss_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "subsurface_water_loss", &result)) + make_access_error("SAM_GeothermalNoFin", "subsurface_water_loss"); + }); + return result; +} + +SAM_EXPORT double SAM_GeothermalNoFin_GeoHourly_temp_decline_max_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "temp_decline_max", &result)) + make_access_error("SAM_GeothermalNoFin", "temp_decline_max"); + }); + return result; +} + +SAM_EXPORT double SAM_GeothermalNoFin_GeoHourly_temp_decline_rate_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "temp_decline_rate", &result)) + make_access_error("SAM_GeothermalNoFin", "temp_decline_rate"); + }); + return result; +} + +SAM_EXPORT double SAM_GeothermalNoFin_GeoHourly_use_weather_file_conditions_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "use_weather_file_conditions", &result)) + make_access_error("SAM_GeothermalNoFin", "use_weather_file_conditions"); + }); + return result; +} + +SAM_EXPORT double SAM_GeothermalNoFin_GeoHourly_well_flow_rate_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "well_flow_rate", &result)) + make_access_error("SAM_GeothermalNoFin", "well_flow_rate"); + }); + return result; +} + +SAM_EXPORT double SAM_GeothermalNoFin_GeoHourly_wet_bulb_temp_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "wet_bulb_temp", &result)) + make_access_error("SAM_GeothermalNoFin", "wet_bulb_temp"); + }); + return result; +} + +SAM_EXPORT double SAM_GeothermalNoFin_AdjustmentFactors_adjust_constant_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "adjust_constant", &result)) + make_access_error("SAM_GeothermalNoFin", "adjust_constant"); + }); + return result; +} + +SAM_EXPORT double SAM_GeothermalNoFin_AdjustmentFactors_adjust_en_periods_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "adjust_en_periods", &result)) + make_access_error("SAM_GeothermalNoFin", "adjust_en_periods"); + }); + return result; +} + +SAM_EXPORT double SAM_GeothermalNoFin_AdjustmentFactors_adjust_en_timeindex_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "adjust_en_timeindex", &result)) + make_access_error("SAM_GeothermalNoFin", "adjust_en_timeindex"); + }); + return result; +} + +SAM_EXPORT double* SAM_GeothermalNoFin_AdjustmentFactors_adjust_periods_mget(SAM_table ptr, int* nrows, int* ncols, SAM_error *err){ + double* result = nullptr; + translateExceptions(err, [&]{ + result = ssc_data_get_matrix(ptr, "adjust_periods", nrows, ncols); + if (!result) + make_access_error("SAM_GeothermalNoFin", "adjust_periods"); + }); + return result; +} + +SAM_EXPORT double* SAM_GeothermalNoFin_AdjustmentFactors_adjust_timeindex_aget(SAM_table ptr, int* length, SAM_error *err){ + double* result = nullptr; + translateExceptions(err, [&]{ + result = ssc_data_get_array(ptr, "adjust_timeindex", length); + if (!result) + make_access_error("SAM_GeothermalNoFin", "adjust_timeindex"); + }); + return result; +} + +SAM_EXPORT double SAM_GeothermalNoFin_Outputs_GF_flowrate_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "GF_flowrate", &result)) + make_access_error("SAM_GeothermalNoFin", "GF_flowrate"); + }); + return result; +} + +SAM_EXPORT double SAM_GeothermalNoFin_Outputs_annual_energy_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "annual_energy", &result)) + make_access_error("SAM_GeothermalNoFin", "annual_energy"); + }); + return result; +} + +SAM_EXPORT double* SAM_GeothermalNoFin_Outputs_annual_energy_distribution_time_mget(SAM_table ptr, int* nrows, int* ncols, SAM_error *err){ + double* result = nullptr; + translateExceptions(err, [&]{ + result = ssc_data_get_matrix(ptr, "annual_energy_distribution_time", nrows, ncols); + if (!result) + make_access_error("SAM_GeothermalNoFin", "annual_energy_distribution_time"); + }); + return result; +} + +SAM_EXPORT double SAM_GeothermalNoFin_Outputs_bottom_hole_pressure_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "bottom_hole_pressure", &result)) + make_access_error("SAM_GeothermalNoFin", "bottom_hole_pressure"); + }); + return result; +} + +SAM_EXPORT double SAM_GeothermalNoFin_Outputs_brine_effectiveness_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "brine_effectiveness", &result)) + make_access_error("SAM_GeothermalNoFin", "brine_effectiveness"); + }); + return result; +} + +SAM_EXPORT double SAM_GeothermalNoFin_Outputs_capacity_factor_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "capacity_factor", &result)) + make_access_error("SAM_GeothermalNoFin", "capacity_factor"); + }); + return result; +} + +SAM_EXPORT double SAM_GeothermalNoFin_Outputs_condensate_pump_power_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "condensate_pump_power", &result)) + make_access_error("SAM_GeothermalNoFin", "condensate_pump_power"); + }); + return result; +} + +SAM_EXPORT double SAM_GeothermalNoFin_Outputs_cp_battery_nameplate_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "cp_battery_nameplate", &result)) + make_access_error("SAM_GeothermalNoFin", "cp_battery_nameplate"); + }); + return result; +} + +SAM_EXPORT double SAM_GeothermalNoFin_Outputs_cp_system_nameplate_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "cp_system_nameplate", &result)) + make_access_error("SAM_GeothermalNoFin", "cp_system_nameplate"); + }); + return result; +} + +SAM_EXPORT double SAM_GeothermalNoFin_Outputs_cw_pump_head_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "cw_pump_head", &result)) + make_access_error("SAM_GeothermalNoFin", "cw_pump_head"); + }); + return result; +} + +SAM_EXPORT double SAM_GeothermalNoFin_Outputs_cw_pump_work_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "cw_pump_work", &result)) + make_access_error("SAM_GeothermalNoFin", "cw_pump_work"); + }); + return result; +} + +SAM_EXPORT double SAM_GeothermalNoFin_Outputs_cwflow_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "cwflow", &result)) + make_access_error("SAM_GeothermalNoFin", "cwflow"); + }); + return result; +} + +SAM_EXPORT double* SAM_GeothermalNoFin_Outputs_degradation_aget(SAM_table ptr, int* length, SAM_error *err){ + double* result = nullptr; + translateExceptions(err, [&]{ + result = ssc_data_get_array(ptr, "degradation", length); + if (!result) + make_access_error("SAM_GeothermalNoFin", "degradation"); + }); + return result; +} + +SAM_EXPORT double SAM_GeothermalNoFin_Outputs_design_temp_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "design_temp", &result)) + make_access_error("SAM_GeothermalNoFin", "design_temp"); + }); + return result; +} + +SAM_EXPORT double SAM_GeothermalNoFin_Outputs_dt_rock_well_head_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "dt_rock_well_head", &result)) + make_access_error("SAM_GeothermalNoFin", "dt_rock_well_head"); + }); + return result; +} + +SAM_EXPORT double SAM_GeothermalNoFin_Outputs_eff_secondlaw_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "eff_secondlaw", &result)) + make_access_error("SAM_GeothermalNoFin", "eff_secondlaw"); + }); + return result; +} + +SAM_EXPORT double SAM_GeothermalNoFin_Outputs_first_year_output_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "first_year_output", &result)) + make_access_error("SAM_GeothermalNoFin", "first_year_output"); + }); + return result; +} + +SAM_EXPORT double SAM_GeothermalNoFin_Outputs_flash_count_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "flash_count", &result)) + make_access_error("SAM_GeothermalNoFin", "flash_count"); + }); + return result; +} + +SAM_EXPORT double* SAM_GeothermalNoFin_Outputs_gen_aget(SAM_table ptr, int* length, SAM_error *err){ + double* result = nullptr; + translateExceptions(err, [&]{ + result = ssc_data_get_array(ptr, "gen", length); + if (!result) + make_access_error("SAM_GeothermalNoFin", "gen"); + }); + return result; +} + +SAM_EXPORT double SAM_GeothermalNoFin_Outputs_geothermal_analysis_period_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "geothermal_analysis_period", &result)) + make_access_error("SAM_GeothermalNoFin", "geothermal_analysis_period"); + }); + return result; +} + +SAM_EXPORT double SAM_GeothermalNoFin_Outputs_gross_cost_output_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "gross_cost_output", &result)) + make_access_error("SAM_GeothermalNoFin", "gross_cost_output"); + }); + return result; +} + +SAM_EXPORT double SAM_GeothermalNoFin_Outputs_gross_output_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "gross_output", &result)) + make_access_error("SAM_GeothermalNoFin", "gross_output"); + }); + return result; +} + +SAM_EXPORT double SAM_GeothermalNoFin_Outputs_hp_flash_pressure_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "hp_flash_pressure", &result)) + make_access_error("SAM_GeothermalNoFin", "hp_flash_pressure"); + }); + return result; +} + +SAM_EXPORT double SAM_GeothermalNoFin_Outputs_inj_pump_hp_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "inj_pump_hp", &result)) + make_access_error("SAM_GeothermalNoFin", "inj_pump_hp"); + }); + return result; +} + +SAM_EXPORT double SAM_GeothermalNoFin_Outputs_kwh_per_kw_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "kwh_per_kw", &result)) + make_access_error("SAM_GeothermalNoFin", "kwh_per_kw"); + }); + return result; +} + +SAM_EXPORT double SAM_GeothermalNoFin_Outputs_lifetime_output_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "lifetime_output", &result)) + make_access_error("SAM_GeothermalNoFin", "lifetime_output"); + }); + return result; +} + +SAM_EXPORT double SAM_GeothermalNoFin_Outputs_lp_flash_pressure_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "lp_flash_pressure", &result)) + make_access_error("SAM_GeothermalNoFin", "lp_flash_pressure"); + }); + return result; +} + +SAM_EXPORT double SAM_GeothermalNoFin_Outputs_max_brine_effectiveness_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "max_brine_effectiveness", &result)) + make_access_error("SAM_GeothermalNoFin", "max_brine_effectiveness"); + }); + return result; +} + +SAM_EXPORT double* SAM_GeothermalNoFin_Outputs_monthly_energy_aget(SAM_table ptr, int* length, SAM_error *err){ + double* result = nullptr; + translateExceptions(err, [&]{ + result = ssc_data_get_array(ptr, "monthly_energy", length); + if (!result) + make_access_error("SAM_GeothermalNoFin", "monthly_energy"); + }); + return result; +} + +SAM_EXPORT double* SAM_GeothermalNoFin_Outputs_monthly_energy_lifetime_aget(SAM_table ptr, int* length, SAM_error *err){ + double* result = nullptr; + translateExceptions(err, [&]{ + result = ssc_data_get_array(ptr, "monthly_energy_lifetime", length); + if (!result) + make_access_error("SAM_GeothermalNoFin", "monthly_energy_lifetime"); + }); + return result; +} + +SAM_EXPORT double* SAM_GeothermalNoFin_Outputs_monthly_power_aget(SAM_table ptr, int* length, SAM_error *err){ + double* result = nullptr; + translateExceptions(err, [&]{ + result = ssc_data_get_array(ptr, "monthly_power", length); + if (!result) + make_access_error("SAM_GeothermalNoFin", "monthly_power"); + }); + return result; +} + +SAM_EXPORT double* SAM_GeothermalNoFin_Outputs_monthly_resource_temperature_aget(SAM_table ptr, int* length, SAM_error *err){ + double* result = nullptr; + translateExceptions(err, [&]{ + result = ssc_data_get_array(ptr, "monthly_resource_temperature", length); + if (!result) + make_access_error("SAM_GeothermalNoFin", "monthly_resource_temperature"); + }); + return result; +} + +SAM_EXPORT double SAM_GeothermalNoFin_Outputs_ncg_condensate_pump_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "ncg_condensate_pump", &result)) + make_access_error("SAM_GeothermalNoFin", "ncg_condensate_pump"); + }); + return result; +} + +SAM_EXPORT double SAM_GeothermalNoFin_Outputs_net_plant_output_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "net_plant_output", &result)) + make_access_error("SAM_GeothermalNoFin", "net_plant_output"); + }); + return result; +} + +SAM_EXPORT double SAM_GeothermalNoFin_Outputs_num_confirm_wells_to_production_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "num_confirm_wells_to_production", &result)) + make_access_error("SAM_GeothermalNoFin", "num_confirm_wells_to_production"); + }); + return result; +} + +SAM_EXPORT double SAM_GeothermalNoFin_Outputs_num_wells_getem_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "num_wells_getem", &result)) + make_access_error("SAM_GeothermalNoFin", "num_wells_getem"); + }); + return result; +} + +SAM_EXPORT double SAM_GeothermalNoFin_Outputs_num_wells_getem_inj_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "num_wells_getem_inj", &result)) + make_access_error("SAM_GeothermalNoFin", "num_wells_getem_inj"); + }); + return result; +} + +SAM_EXPORT double SAM_GeothermalNoFin_Outputs_num_wells_getem_inj_drilled_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "num_wells_getem_inj_drilled", &result)) + make_access_error("SAM_GeothermalNoFin", "num_wells_getem_inj_drilled"); + }); + return result; +} + +SAM_EXPORT double SAM_GeothermalNoFin_Outputs_num_wells_getem_output_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "num_wells_getem_output", &result)) + make_access_error("SAM_GeothermalNoFin", "num_wells_getem_output"); + }); + return result; +} + +SAM_EXPORT double SAM_GeothermalNoFin_Outputs_num_wells_getem_prod_drilled_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "num_wells_getem_prod_drilled", &result)) + make_access_error("SAM_GeothermalNoFin", "num_wells_getem_prod_drilled"); + }); + return result; +} + +SAM_EXPORT double SAM_GeothermalNoFin_Outputs_num_wells_getem_prod_failed_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "num_wells_getem_prod_failed", &result)) + make_access_error("SAM_GeothermalNoFin", "num_wells_getem_prod_failed"); + }); + return result; +} + +SAM_EXPORT double SAM_GeothermalNoFin_Outputs_plant_brine_eff_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "plant_brine_eff", &result)) + make_access_error("SAM_GeothermalNoFin", "plant_brine_eff"); + }); + return result; +} + +SAM_EXPORT double SAM_GeothermalNoFin_Outputs_pressure_ratio_1_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "pressure_ratio_1", &result)) + make_access_error("SAM_GeothermalNoFin", "pressure_ratio_1"); + }); + return result; +} + +SAM_EXPORT double SAM_GeothermalNoFin_Outputs_pressure_ratio_2_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "pressure_ratio_2", &result)) + make_access_error("SAM_GeothermalNoFin", "pressure_ratio_2"); + }); + return result; +} + +SAM_EXPORT double SAM_GeothermalNoFin_Outputs_pressure_ratio_3_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "pressure_ratio_3", &result)) + make_access_error("SAM_GeothermalNoFin", "pressure_ratio_3"); + }); + return result; +} + +SAM_EXPORT double SAM_GeothermalNoFin_Outputs_pump_depth_ft_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "pump_depth_ft", &result)) + make_access_error("SAM_GeothermalNoFin", "pump_depth_ft"); + }); + return result; +} + +SAM_EXPORT double SAM_GeothermalNoFin_Outputs_pump_hp_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "pump_hp", &result)) + make_access_error("SAM_GeothermalNoFin", "pump_hp"); + }); + return result; +} + +SAM_EXPORT double SAM_GeothermalNoFin_Outputs_pump_size_hp_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "pump_size_hp", &result)) + make_access_error("SAM_GeothermalNoFin", "pump_size_hp"); + }); + return result; +} + +SAM_EXPORT double SAM_GeothermalNoFin_Outputs_pump_watthr_per_lb_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "pump_watthr_per_lb", &result)) + make_access_error("SAM_GeothermalNoFin", "pump_watthr_per_lb"); + }); + return result; +} + +SAM_EXPORT double SAM_GeothermalNoFin_Outputs_pump_work_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "pump_work", &result)) + make_access_error("SAM_GeothermalNoFin", "pump_work"); + }); + return result; +} + +SAM_EXPORT double SAM_GeothermalNoFin_Outputs_pumpwork_inj_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "pumpwork_inj", &result)) + make_access_error("SAM_GeothermalNoFin", "pumpwork_inj"); + }); + return result; +} + +SAM_EXPORT double SAM_GeothermalNoFin_Outputs_pumpwork_prod_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "pumpwork_prod", &result)) + make_access_error("SAM_GeothermalNoFin", "pumpwork_prod"); + }); + return result; +} + +SAM_EXPORT double SAM_GeothermalNoFin_Outputs_qCondenser_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "qCondenser", &result)) + make_access_error("SAM_GeothermalNoFin", "qCondenser"); + }); + return result; +} + +SAM_EXPORT double SAM_GeothermalNoFin_Outputs_qRejectByStage_1_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "qRejectByStage_1", &result)) + make_access_error("SAM_GeothermalNoFin", "qRejectByStage_1"); + }); + return result; +} + +SAM_EXPORT double SAM_GeothermalNoFin_Outputs_qRejectByStage_2_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "qRejectByStage_2", &result)) + make_access_error("SAM_GeothermalNoFin", "qRejectByStage_2"); + }); + return result; +} + +SAM_EXPORT double SAM_GeothermalNoFin_Outputs_qRejectByStage_3_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "qRejectByStage_3", &result)) + make_access_error("SAM_GeothermalNoFin", "qRejectByStage_3"); + }); + return result; +} + +SAM_EXPORT double SAM_GeothermalNoFin_Outputs_qRejectTotal_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "qRejectTotal", &result)) + make_access_error("SAM_GeothermalNoFin", "qRejectTotal"); + }); + return result; +} + +SAM_EXPORT double SAM_GeothermalNoFin_Outputs_reservoir_avg_temp_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "reservoir_avg_temp", &result)) + make_access_error("SAM_GeothermalNoFin", "reservoir_avg_temp"); + }); + return result; +} + +SAM_EXPORT double SAM_GeothermalNoFin_Outputs_reservoir_pressure_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "reservoir_pressure", &result)) + make_access_error("SAM_GeothermalNoFin", "reservoir_pressure"); + }); + return result; +} + +SAM_EXPORT double SAM_GeothermalNoFin_Outputs_spec_vol_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "spec_vol", &result)) + make_access_error("SAM_GeothermalNoFin", "spec_vol"); + }); + return result; +} + +SAM_EXPORT double SAM_GeothermalNoFin_Outputs_spec_vol_lp_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "spec_vol_lp", &result)) + make_access_error("SAM_GeothermalNoFin", "spec_vol_lp"); + }); + return result; +} + +SAM_EXPORT double SAM_GeothermalNoFin_Outputs_system_capacity_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "system_capacity", &result)) + make_access_error("SAM_GeothermalNoFin", "system_capacity"); + }); + return result; +} + +SAM_EXPORT double* SAM_GeothermalNoFin_Outputs_system_lifetime_recapitalize_aget(SAM_table ptr, int* length, SAM_error *err){ + double* result = nullptr; + translateExceptions(err, [&]{ + result = ssc_data_get_array(ptr, "system_lifetime_recapitalize", length); + if (!result) + make_access_error("SAM_GeothermalNoFin", "system_lifetime_recapitalize"); + }); + return result; +} + +SAM_EXPORT double SAM_GeothermalNoFin_Outputs_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_GeothermalNoFin", "system_use_lifetime_output"); + }); + return result; +} + +SAM_EXPORT double SAM_GeothermalNoFin_Outputs_system_use_recapitalization_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "system_use_recapitalization", &result)) + make_access_error("SAM_GeothermalNoFin", "system_use_recapitalization"); + }); + return result; +} + +SAM_EXPORT double* SAM_GeothermalNoFin_Outputs_timestep_dry_bulb_aget(SAM_table ptr, int* length, SAM_error *err){ + double* result = nullptr; + translateExceptions(err, [&]{ + result = ssc_data_get_array(ptr, "timestep_dry_bulb", length); + if (!result) + make_access_error("SAM_GeothermalNoFin", "timestep_dry_bulb"); + }); + return result; +} + +SAM_EXPORT double* SAM_GeothermalNoFin_Outputs_timestep_pressure_aget(SAM_table ptr, int* length, SAM_error *err){ + double* result = nullptr; + translateExceptions(err, [&]{ + result = ssc_data_get_array(ptr, "timestep_pressure", length); + if (!result) + make_access_error("SAM_GeothermalNoFin", "timestep_pressure"); + }); + return result; +} + +SAM_EXPORT double* SAM_GeothermalNoFin_Outputs_timestep_resource_temperature_aget(SAM_table ptr, int* length, SAM_error *err){ + double* result = nullptr; + translateExceptions(err, [&]{ + result = ssc_data_get_array(ptr, "timestep_resource_temperature", length); + if (!result) + make_access_error("SAM_GeothermalNoFin", "timestep_resource_temperature"); + }); + return result; +} + +SAM_EXPORT double* SAM_GeothermalNoFin_Outputs_timestep_test_values_aget(SAM_table ptr, int* length, SAM_error *err){ + double* result = nullptr; + translateExceptions(err, [&]{ + result = ssc_data_get_array(ptr, "timestep_test_values", length); + if (!result) + make_access_error("SAM_GeothermalNoFin", "timestep_test_values"); + }); + return result; +} + +SAM_EXPORT double* SAM_GeothermalNoFin_Outputs_timestep_wet_bulb_aget(SAM_table ptr, int* length, SAM_error *err){ + double* result = nullptr; + translateExceptions(err, [&]{ + result = ssc_data_get_array(ptr, "timestep_wet_bulb", length); + if (!result) + make_access_error("SAM_GeothermalNoFin", "timestep_wet_bulb"); + }); + return result; +} + +SAM_EXPORT double SAM_GeothermalNoFin_Outputs_v_stage_1_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "v_stage_1", &result)) + make_access_error("SAM_GeothermalNoFin", "v_stage_1"); + }); + return result; +} + +SAM_EXPORT double SAM_GeothermalNoFin_Outputs_v_stage_2_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "v_stage_2", &result)) + make_access_error("SAM_GeothermalNoFin", "v_stage_2"); + }); + return result; +} + +SAM_EXPORT double SAM_GeothermalNoFin_Outputs_v_stage_3_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "v_stage_3", &result)) + make_access_error("SAM_GeothermalNoFin", "v_stage_3"); + }); + return result; +} + +SAM_EXPORT double SAM_GeothermalNoFin_Outputs_x_hp_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "x_hp", &result)) + make_access_error("SAM_GeothermalNoFin", "x_hp"); + }); + return result; +} + +SAM_EXPORT double SAM_GeothermalNoFin_Outputs_x_lp_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "x_lp", &result)) + make_access_error("SAM_GeothermalNoFin", "x_lp"); + }); + return result; +} + diff --git a/api/modules/SAM_LcoefcrElectricity.cpp b/api/modules/SAM_LcoefcrElectricity.cpp new file mode 100644 index 0000000000..0803ab9c17 --- /dev/null +++ b/api/modules/SAM_LcoefcrElectricity.cpp @@ -0,0 +1,312 @@ +#include +#include +#include +#include +#include + +#include + +#include "SAM_api.h" +#include "ErrorHandler.h" +#include "SAM_LcoefcrElectricity.h" + +SAM_EXPORT int SAM_LcoefcrElectricity_execute(SAM_table data, int verbosity, SAM_error* err){ + return SAM_module_exec("lcoefcr_electricity", data, verbosity, err); +} + +SAM_EXPORT void SAM_LcoefcrElectricity_SystemControl_sim_type_nset(SAM_table ptr, double number, SAM_error *err){ + translateExceptions(err, [&]{ + ssc_data_set_number(ptr, "sim_type", number); + }); +} + +SAM_EXPORT void SAM_LcoefcrElectricity_SimpleLCOE_annual_energy_nset(SAM_table ptr, double number, SAM_error *err){ + translateExceptions(err, [&]{ + ssc_data_set_number(ptr, "annual_energy", number); + }); +} + +SAM_EXPORT void SAM_LcoefcrElectricity_SimpleLCOE_c_construction_cost_aset(SAM_table ptr, double* arr, int length, SAM_error *err){ + translateExceptions(err, [&]{ + ssc_data_set_array(ptr, "c_construction_cost", arr, length); + }); +} + +SAM_EXPORT void SAM_LcoefcrElectricity_SimpleLCOE_c_construction_interest_nset(SAM_table ptr, double number, SAM_error *err){ + translateExceptions(err, [&]{ + ssc_data_set_number(ptr, "c_construction_interest", number); + }); +} + +SAM_EXPORT void SAM_LcoefcrElectricity_SimpleLCOE_c_debt_percent_nset(SAM_table ptr, double number, SAM_error *err){ + translateExceptions(err, [&]{ + ssc_data_set_number(ptr, "c_debt_percent", number); + }); +} + +SAM_EXPORT void SAM_LcoefcrElectricity_SimpleLCOE_c_depreciation_schedule_aset(SAM_table ptr, double* arr, int length, SAM_error *err){ + translateExceptions(err, [&]{ + ssc_data_set_array(ptr, "c_depreciation_schedule", arr, length); + }); +} + +SAM_EXPORT void SAM_LcoefcrElectricity_SimpleLCOE_c_equity_return_nset(SAM_table ptr, double number, SAM_error *err){ + translateExceptions(err, [&]{ + ssc_data_set_number(ptr, "c_equity_return", number); + }); +} + +SAM_EXPORT void SAM_LcoefcrElectricity_SimpleLCOE_c_inflation_nset(SAM_table ptr, double number, SAM_error *err){ + translateExceptions(err, [&]{ + ssc_data_set_number(ptr, "c_inflation", number); + }); +} + +SAM_EXPORT void SAM_LcoefcrElectricity_SimpleLCOE_c_lifetime_nset(SAM_table ptr, double number, SAM_error *err){ + translateExceptions(err, [&]{ + ssc_data_set_number(ptr, "c_lifetime", number); + }); +} + +SAM_EXPORT void SAM_LcoefcrElectricity_SimpleLCOE_c_nominal_interest_rate_nset(SAM_table ptr, double number, SAM_error *err){ + translateExceptions(err, [&]{ + ssc_data_set_number(ptr, "c_nominal_interest_rate", number); + }); +} + +SAM_EXPORT void SAM_LcoefcrElectricity_SimpleLCOE_c_tax_rate_nset(SAM_table ptr, double number, SAM_error *err){ + translateExceptions(err, [&]{ + ssc_data_set_number(ptr, "c_tax_rate", number); + }); +} + +SAM_EXPORT void SAM_LcoefcrElectricity_SimpleLCOE_fixed_operating_cost_nset(SAM_table ptr, double number, SAM_error *err){ + translateExceptions(err, [&]{ + ssc_data_set_number(ptr, "fixed_operating_cost", number); + }); +} + +SAM_EXPORT void SAM_LcoefcrElectricity_SimpleLCOE_ui_fcr_input_option_nset(SAM_table ptr, double number, SAM_error *err){ + translateExceptions(err, [&]{ + ssc_data_set_number(ptr, "ui_fcr_input_option", number); + }); +} + +SAM_EXPORT void SAM_LcoefcrElectricity_SimpleLCOE_ui_fixed_charge_rate_nset(SAM_table ptr, double number, SAM_error *err){ + translateExceptions(err, [&]{ + ssc_data_set_number(ptr, "ui_fixed_charge_rate", number); + }); +} + +SAM_EXPORT void SAM_LcoefcrElectricity_SimpleLCOE_variable_operating_cost_nset(SAM_table ptr, double number, SAM_error *err){ + translateExceptions(err, [&]{ + ssc_data_set_number(ptr, "variable_operating_cost", number); + }); +} + +SAM_EXPORT void SAM_LcoefcrElectricity_SystemCosts_total_installed_cost_nset(SAM_table ptr, double number, SAM_error *err){ + translateExceptions(err, [&]{ + ssc_data_set_number(ptr, "total_installed_cost", number); + }); +} + +SAM_EXPORT double SAM_LcoefcrElectricity_SystemControl_sim_type_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "sim_type", &result)) + make_access_error("SAM_LcoefcrElectricity", "sim_type"); + }); + return result; +} + +SAM_EXPORT double SAM_LcoefcrElectricity_SimpleLCOE_annual_energy_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "annual_energy", &result)) + make_access_error("SAM_LcoefcrElectricity", "annual_energy"); + }); + return result; +} + +SAM_EXPORT double* SAM_LcoefcrElectricity_SimpleLCOE_c_construction_cost_aget(SAM_table ptr, int* length, SAM_error *err){ + double* result = nullptr; + translateExceptions(err, [&]{ + result = ssc_data_get_array(ptr, "c_construction_cost", length); + if (!result) + make_access_error("SAM_LcoefcrElectricity", "c_construction_cost"); + }); + return result; +} + +SAM_EXPORT double SAM_LcoefcrElectricity_SimpleLCOE_c_construction_interest_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "c_construction_interest", &result)) + make_access_error("SAM_LcoefcrElectricity", "c_construction_interest"); + }); + return result; +} + +SAM_EXPORT double SAM_LcoefcrElectricity_SimpleLCOE_c_debt_percent_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "c_debt_percent", &result)) + make_access_error("SAM_LcoefcrElectricity", "c_debt_percent"); + }); + return result; +} + +SAM_EXPORT double* SAM_LcoefcrElectricity_SimpleLCOE_c_depreciation_schedule_aget(SAM_table ptr, int* length, SAM_error *err){ + double* result = nullptr; + translateExceptions(err, [&]{ + result = ssc_data_get_array(ptr, "c_depreciation_schedule", length); + if (!result) + make_access_error("SAM_LcoefcrElectricity", "c_depreciation_schedule"); + }); + return result; +} + +SAM_EXPORT double SAM_LcoefcrElectricity_SimpleLCOE_c_equity_return_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "c_equity_return", &result)) + make_access_error("SAM_LcoefcrElectricity", "c_equity_return"); + }); + return result; +} + +SAM_EXPORT double SAM_LcoefcrElectricity_SimpleLCOE_c_inflation_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "c_inflation", &result)) + make_access_error("SAM_LcoefcrElectricity", "c_inflation"); + }); + return result; +} + +SAM_EXPORT double SAM_LcoefcrElectricity_SimpleLCOE_c_lifetime_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "c_lifetime", &result)) + make_access_error("SAM_LcoefcrElectricity", "c_lifetime"); + }); + return result; +} + +SAM_EXPORT double SAM_LcoefcrElectricity_SimpleLCOE_c_nominal_interest_rate_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "c_nominal_interest_rate", &result)) + make_access_error("SAM_LcoefcrElectricity", "c_nominal_interest_rate"); + }); + return result; +} + +SAM_EXPORT double SAM_LcoefcrElectricity_SimpleLCOE_c_tax_rate_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "c_tax_rate", &result)) + make_access_error("SAM_LcoefcrElectricity", "c_tax_rate"); + }); + return result; +} + +SAM_EXPORT double SAM_LcoefcrElectricity_SimpleLCOE_fixed_operating_cost_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "fixed_operating_cost", &result)) + make_access_error("SAM_LcoefcrElectricity", "fixed_operating_cost"); + }); + return result; +} + +SAM_EXPORT double SAM_LcoefcrElectricity_SimpleLCOE_ui_fcr_input_option_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "ui_fcr_input_option", &result)) + make_access_error("SAM_LcoefcrElectricity", "ui_fcr_input_option"); + }); + return result; +} + +SAM_EXPORT double SAM_LcoefcrElectricity_SimpleLCOE_ui_fixed_charge_rate_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "ui_fixed_charge_rate", &result)) + make_access_error("SAM_LcoefcrElectricity", "ui_fixed_charge_rate"); + }); + return result; +} + +SAM_EXPORT double SAM_LcoefcrElectricity_SimpleLCOE_variable_operating_cost_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "variable_operating_cost", &result)) + make_access_error("SAM_LcoefcrElectricity", "variable_operating_cost"); + }); + return result; +} + +SAM_EXPORT double SAM_LcoefcrElectricity_SystemCosts_total_installed_cost_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "total_installed_cost", &result)) + make_access_error("SAM_LcoefcrElectricity", "total_installed_cost"); + }); + return result; +} + +SAM_EXPORT double SAM_LcoefcrElectricity_Outputs_cfin_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "cfin", &result)) + make_access_error("SAM_LcoefcrElectricity", "cfin"); + }); + return result; +} + +SAM_EXPORT double SAM_LcoefcrElectricity_Outputs_crf_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "crf", &result)) + make_access_error("SAM_LcoefcrElectricity", "crf"); + }); + return result; +} + +SAM_EXPORT double SAM_LcoefcrElectricity_Outputs_fixed_charge_rate_calc_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "fixed_charge_rate_calc", &result)) + make_access_error("SAM_LcoefcrElectricity", "fixed_charge_rate_calc"); + }); + return result; +} + +SAM_EXPORT double SAM_LcoefcrElectricity_Outputs_lcoe_fcr_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "lcoe_fcr", &result)) + make_access_error("SAM_LcoefcrElectricity", "lcoe_fcr"); + }); + return result; +} + +SAM_EXPORT double SAM_LcoefcrElectricity_Outputs_pfin_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "pfin", &result)) + make_access_error("SAM_LcoefcrElectricity", "pfin"); + }); + return result; +} + +SAM_EXPORT double SAM_LcoefcrElectricity_Outputs_wacc_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "wacc", &result)) + make_access_error("SAM_LcoefcrElectricity", "wacc"); + }); + return result; +} + diff --git a/deploy/runtime/defaults/Geothermal Power_All Equity Partnership Flip.json b/deploy/runtime/defaults/Geothermal Power_All Equity Partnership Flip.json index c1d4363cfc..405e1877c4 100644 --- a/deploy/runtime/defaults/Geothermal Power_All Equity Partnership Flip.json +++ b/deploy/runtime/defaults/Geothermal Power_All Equity Partnership Flip.json @@ -1,6 +1,5 @@ { "CT": 3.0, - "HTF": 3.0, "P_boil": 2.0, "P_cond_min": 1.25, "P_cond_ratio": 1.0028, @@ -35,24 +34,25 @@ "analysis_period_warning": "No messages.", "analysis_type": 0.0, "annual_albedo": NaN, - "annual_beam": 7.92706, - "annual_csky_beam": 0.0, - "annual_csky_diffuse": 0.0, - "annual_csky_global": 0.0, - "annual_diffuse": 1.24088, - "annual_global": 5.9594, - "annual_precipitation": 0.0, + "annual_beam": 7.927057534246576, + "annual_csky_beam": NaN, + "annual_csky_diffuse": NaN, + "annual_csky_global": NaN, + "annual_diffuse": 1.2408849315068494, + "annual_global": 5.959397260273972, + "annual_precipitation": NaN, "annual_snow": NaN, - "annual_tdry": 24.0951, + "annual_tdry": 24.09511485279423, "annual_twet": NaN, - "annual_wspd": 2.28094, - "baseline_cost": 1139.3444299661827, + "annual_wspd": 2.280936073059361, + "baseline_cost_calc": 1139.3444299661827, "batt_itc_basis_cost": 0.0, "batt_itc_basis_cost_fed_include": 0.0, "batt_itc_basis_cost_sta_include": 0.0, "batt_itc_basis_percent": 0.0, "batt_salvage_percentage": 0.0, "batt_salvage_value": 0.0, + "bottom_hole_pressure_calc": 2362.8117253807779, "casing_size": 9.625, "cbi_fed_amount": 0.0, "cbi_fed_deprbas_fed": 0.0, @@ -79,7 +79,9 @@ "cbi_uti_tax_fed": 1.0, "cbi_uti_tax_sta": 1.0, "city": "-", - "const_per_interest1": 8585454.45260786, + "conf_drilling_cost_calc": 16762631.185441852, + "conf_total_cost_calc": 16762631.185441852, + "const_per_interest1": 8585454.452607863, "const_per_interest2": 5547524.415531235, "const_per_interest3": 0.0, "const_per_interest4": 0.0, @@ -89,7 +91,7 @@ "const_per_interest_rate3": 0.0, "const_per_interest_rate4": 0.0, "const_per_interest_rate5": 0.0, - "const_per_interest_total": 14132978.868139096, + "const_per_interest_total": 14132978.868139098, "const_per_months1": 60.0, "const_per_months2": 24.0, "const_per_months3": 0.0, @@ -106,13 +108,13 @@ "const_per_percent4": 0.0, "const_per_percent5": 0.0, "const_per_percent_total": 100.0, - "const_per_principal1": 52833565.86220223, + "const_per_principal1": 52833565.862202238, "const_per_principal2": 79250348.79330334, "const_per_principal3": 0.0, "const_per_principal4": 0.0, "const_per_principal5": 0.0, "const_per_principal_total": 132083914.65550557, - "const_per_total1": 9113790.111229884, + "const_per_total1": 9113790.111229886, "const_per_total2": 7132531.391397301, "const_per_total3": 0.0, "const_per_total4": 0.0, @@ -122,8 +124,10 @@ "const_per_upfront_rate3": 0.0, "const_per_upfront_rate4": 0.0, "const_per_upfront_rate5": 0.0, - "construction_financing_cost": 16246321.502627185, - "construction_ppi": 0.788589981, + "construction_financing_cost": 16246321.502627187, + "construction_financing_cost_calc": 16246321.502627187, + "construction_ppi": 0.790555556, + "contingency_cost_calc": 8071098.99948401, "conversion_subtype": 0.0, "conversion_type": 0.0, "cost_dev_fee_percent": 3.0, @@ -134,9 +138,6 @@ "country": "-", "dT_cw_ref": 10.0, "decline_type": 0.0, - "degradation": [ - 0.0 - ], "delta_pressure_equip": 40.0, "depr_alloc_custom_percent": 0.0, "depr_alloc_macrs_15_percent": 0.0, @@ -150,7 +151,7 @@ "depr_basis_mat": [ [ 1.0, - 132083914.65550557, + 132083914.65550559, 100.0, 1.0, 0.0, @@ -204,6 +205,7 @@ "depr_itc_sta_sl_5": 0.0, "depr_stabas_method": 1.0, "design_temp": 200.0, + "design_temp_calc": 200.0, "developer_equity_percent": 40.0, "developer_postflip_cash_percent": 90.0, "developer_postflip_tax_percent": 90.0, @@ -9611,13 +9613,14 @@ 1.0, 1.0 ], - "drilling_ppi": 0.319286373, + "drilling_ppi": 0.319, "drilling_success_rate": 76.0, "dscr_reserve_months": 6.0, "dt_prod_well": 0.0, "elev": 82.0, "enable_interconnection_limit": 0.0, - "engineering_ppi": 0.77985529, + "engineering_ppi": 0.779879622, + "epc_total_cost_calc": 13263656.701808092, "equip1_reserve_cost": 0.0, "equip1_reserve_freq": 12.0, "equip2_reserve_cost": 0.0, @@ -9628,11 +9631,15 @@ "equip_reserve_depr_sta": 0.0, "eta_ref": 0.17, "excess_pressure_pump": 50.0, + "expl_cost_per_well_calc": 0.0, + "expl_drilling_cost_calc": 0.0, + "expl_total_cost_calc": 0.0, "exploration_wells_production": 2.0, "failed_prod_flow_ratio": 0.3, "federal_tax_rate": [ 21.0 ], + "field_gathering_num_wells_calc": 8.227676296441534, "file_name": "blythe_ca_33.617773_-114.588261_psmv3_60_tmy.csv", "flip_target_percent": 15.0, "flip_target_year": 20.0, @@ -9644,6 +9651,7 @@ "gen": [ 0.0 ], + "geo_financial_model": 3.0, "geopowerblock.pwrb.condenser_type": 2.0, "geopowerblock.pwrb.model_name": "0", "geotherm.avg_reservoir_temp": 200.0, @@ -9669,14 +9677,14 @@ "geotherm.cost.drilling.amount_specified": 0.0, "geotherm.cost.drilling.calc": 1.0, "geotherm.cost.epc.fixed": 0.0, - "geotherm.cost.epc.nonfixed": 13263656.70180809, "geotherm.cost.epc.percent": 12.0, - "geotherm.cost.epc.total": 13263656.70180809, + "geotherm.cost.epc.total": 13263656.701808092, "geotherm.cost.expl_drill": 0.0, + "geotherm.cost.expl_lump_sum": 0.0, "geotherm.cost.expl_multiplier": 0.5, "geotherm.cost.expl_non_drill": 750000.0, "geotherm.cost.expl_num_wells": 1.0, - "geotherm.cost.expl_per_well": 1746107.415150193, + "geotherm.cost.expl_per_well": 0.0, "geotherm.cost.expl_total": 0.0, "geotherm.cost.indirect.amount_specified": 0.0, "geotherm.cost.indirect.calc": 1.0, @@ -9689,8 +9697,7 @@ "geotherm.cost.inj_prod_well_ratio": 0.75, "geotherm.cost.inj_pump_cost_per_pump": 267769.04588283775, "geotherm.cost.inj_wells_drilled": 3.4980641974382657, - "geotherm.cost.installed_per_capacity": 4402.797155183511, - "geotherm.cost.num_pumps": 4.074505195242484, + "geotherm.cost.installed_per_capacity": 4402.797155183512, "geotherm.cost.other_per_pump": 10000.0, "geotherm.cost.plant": 100000.0, "geotherm.cost.plant_auto_estimate": 0.0, @@ -9698,15 +9705,14 @@ "geotherm.cost.plant_per_kW": 1139.3444299661827, "geotherm.cost.plant_per_kW.bak": 0.0, "geotherm.cost.plant_per_kW_input": 1800.0, - "geotherm.cost.plant_size": 32813.60319442342, + "geotherm.cost.plant_size": 26069.215350902592, "geotherm.cost.plant_total": 59064485.74996216, "geotherm.cost.plant_total.amount": 59064485.74996216, "geotherm.cost.plant_total.amount_specified": 0.0, "geotherm.cost.plant_total.calc": 1.0, "geotherm.cost.plm.fixed": 0.0, - "geotherm.cost.plm.nonfixed": 3868566.5380273598, "geotherm.cost.plm.percent": 3.5, - "geotherm.cost.plm.total": 3868566.5380273598, + "geotherm.cost.plm.total": 3868566.5380273608, "geotherm.cost.prod_cost_curve": 0.0, "geotherm.cost.prod_cost_curve_welldiam": 0.0, "geotherm.cost.prod_cost_curve_welltype": 0.0, @@ -9749,7 +9755,6 @@ "geotherm.cost.surf_num_wells": 8.227676296441534, "geotherm.cost.surf_per_well": 252335.1804352219, "geotherm.cost.surf_total": 2076132.1828251726, - "geotherm.cost.total_installed_millions": 132.08391465550558, "geotherm.cost.total_surface_equipment_cost": 2304639.4651651426, "geotherm.default_input": 0.0, "geotherm.delta_pressure_reservoir": 349.21180799999999, @@ -9772,8 +9777,6 @@ "geotherm.resource_type": 0.0, "geotherm.resource_type_name": "0", "geotherm.temp_gradient": 0.0, - "geotherm.total_flow_gpm": 7112.863719334803, - "geotherm.total_flow_kg_per_s": 448.1955714766732, "geothermal_analysis_period": 25.0, "grid_curtailment": [ 1e38, @@ -18538,7 +18541,9 @@ 1e38 ], "grid_interconnection_limit_kwac": 100000.0, - "gross_output": 32.81360319442342, + "gross_cost_output_calc": 26069.215350902592, + "gross_output_calc": 32.81360319442342, + "gross_output_ui": 32.81360319442342, "hc_ctl1": 0.0, "hc_ctl2": 0.0, "hc_ctl3": 0.0, @@ -18549,7 +18554,7 @@ "hc_ctl8": 0.0, "hc_ctl9": 0.0, "hr_pl_nlev": 8.0, - "hx_ppi": 0.89055794, + "hx_ppi": 0.89066972, "hybrid_dispatch_schedule": "111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111", "ibi_fed_amount": 0.0, "ibi_fed_amount_deprbas_fed": 0.0, @@ -18600,17 +18605,27 @@ "in_location_options": 0.0, "in_nsrdb_options": 0.0, "in_time_step": 0.0, + "indirect_cost_calc": 21553442.14043815, "indirect_pump_cost": 418532.13261414787, + "indirect_pump_cost_calc": 418532.13261414787, "inflation_rate": 2.5, "inj_num_pumps": 1.0, + "inj_num_pumps_calc": 1.0, "inj_prod_well_distance": 1500.0, "inj_pump_cost": 228507.28233996986, + "inj_pump_cost_calc": 228507.28233996986, + "inj_pump_cost_per_pump_calc": 267769.04588283775, "inj_pump_hp": 783.8610732526882, + "inj_pump_hp_calc": 783.8610732526882, + "inj_total_cost_calc": 12215991.667636728, + "inj_well_cost_calc": 3492214.830300386, "inj_well_diam": 12.25, "injectivity_index": 3000.0, + "installed_cost_per_kW_calc": 4402.797155183512, "insurance_rate": 0.5, "is_advanced": 0.0, - "itc_basis_cost_capex_fed": 132083914.65550557, + "is_success_auto_exec": 1.0, + "itc_basis_cost_capex_fed": 132083914.65550559, "itc_basis_cost_capex_sta": 0.0, "itc_basis_cost_percent_fed": 100.0, "itc_basis_cost_percent_sta": 0.0, @@ -18644,7 +18659,7 @@ "itc_sta_percent_maxvalue": [ 1e38 ], - "lat": 33.61, + "lat": 33.61000061035156, "lib_dispatch_factor1": 1.0, "lib_dispatch_factor2": 1.0, "lib_dispatch_factor3": 1.0, @@ -19284,7 +19299,7 @@ ], "library_folder_list": "x", "library_paths": "\"\"", - "lon": -114.58, + "lon": -114.58000183105469, "mera_cost1": 0.0, "mera_cost2": 0.0, "mera_cost3": 0.0, @@ -19295,13 +19310,20 @@ "months_receivables_reserve": 0.0, "months_working_reserve": 6.0, "nameplate": 30000.0, + "net_plant_output_calc": 30.000000000000055, "nominal_discount_rate": 9.060000000000003, "non_itc_basis_depreciation_allocation": 0.0, "non_itc_basis_percent_depr": 0.0, + "num_confirm_wells_to_production_calc": 2.0, "num_fractures": 6.0, "num_wells": 3.0, + "num_wells_calc": 4.074505195242484, "num_wells_getem": 4.074505195242484, "num_wells_getem_inj": 2.6585287900530818, + "num_wells_getem_inj_calc": 2.6585287900530818, + "num_wells_getem_inj_drilled_calc": 3.4980641974382657, + "num_wells_getem_prod_drilled_calc": 2.729612099003268, + "num_wells_getem_prod_inj_sum_calc": 6.227676296441533, "om_capacity": [ 175.0 ], @@ -19347,7 +19369,10 @@ "pbi_uti_tax_fed": 1.0, "pbi_uti_tax_sta": 1.0, "pbi_uti_term": 0.0, + "piping_cost_per_well_calc": 252335.1804352219, + "plant_brine_eff_calc": 9.224654672876282, "plant_efficiency_input": 80.0, + "plm_total_cost_calc": 3868566.5380273608, "ppa_escalation": 1.0, "ppa_multiplier_model": 0.0, "ppa_price_input": [ @@ -19355,12 +19380,17 @@ ], "ppa_soln_mode": 1.0, "ppi_base_year": 0.0, - "process_equip_ppi": 0.884018929, + "process_equip_ppi": 0.884044412, + "prod_inj_total_cost_calc": 21898383.520743308, "prod_pump_cost": 764596.1740052729, + "prod_pump_cost_calc": 764596.1740052729, + "prod_pump_cost_per_well_calc": 187653.74870500563, + "prod_total_cost_calc": 9532391.853106579, "prod_well_choice": 0.0, + "prod_well_cost_calc": 3492214.830300386, "prop_tax_assessed_decline": 0.0, "prop_tax_cost_assessed_percent": 100.0, - "property_assessed_value": 132083914.65550557, + "property_assessed_value": 132083914.65550559, "property_tax_rate": 1.0, "ptc_fed_amount": [ 0.0 @@ -19373,17 +19403,26 @@ "ptc_sta_escal": 0.0, "ptc_sta_term": 0.0, "pump_casing_total_cost": 37532198.23782873, + "pump_cost_install_calc": 17929.850444600725, "pump_depth": 1123.1203058328284, + "pump_depth_ft_calc": 1123.1203058328284, "pump_efficiency": 67.5, - "pump_ppi": 0.853374525, + "pump_only_cost_calc": 151362.5378483016, + "pump_ppi": 0.853394181, "pump_size_hp": 733.6462176201694, + "pump_size_hp_calc": 733.6462176201694, + "pump_watthr_per_lb_calc": 0.7909682365960984, "pump_work": 2.8136031944233679, + "pump_work_calc": 2.8136031944233679, "pump_work_watthr_lb": 0.7909682365960984, "pumpwork_inj": 0.1643234090169439, + "pumpwork_inj_calc": 0.1643234090169439, "pumpwork_prod": 0.6266448275791545, + "pumpwork_prod_calc": 0.6266448275791545, "q_sby_frac": 0.2, "real_discount_rate": 6.4, "reserves_interest": 1.75, + "reservoir_avg_temp_calc": 200.0, "reservoir_height": 100.0, "reservoir_model_inputs": [ [ @@ -19859,6 +19898,7 @@ ], "reservoir_model_inputs_shown": 0.0, "reservoir_permeability": 0.05, + "reservoir_pressure_calc": 349.21180799999999, "reservoir_pressure_change": 2500.0, "reservoir_pressure_change_type": 0.0, "reservoir_pressure_change_type_old_setting": 0.0, @@ -19870,6 +19910,7 @@ "rock_density": 2600.0, "rock_specific_heat": 950.0, "rock_thermal_conductivity": 3.0, + "sales_tax_cost_calc": 4421218.900602697, "sales_tax_rate": 5.0, "salvage_percentage": 0.0, "salvage_value": 0.0, @@ -19887,8 +19928,8 @@ "specify_pump_work": 0.0, "sponsor_cap_recovery_mode": 0.0, "sponsor_cap_recovery_year": 3.0, - "start_day_of_year": 0.0, - "start_day_of_year_tod_ui": 0.0, + "start_day_of_year": 3.335046e-317, + "start_day_of_year_tod_ui": 3.335046e-317, "startup_frac": 0.2, "startup_time": 1.0, "state": "-", @@ -19896,19 +19937,22 @@ 7.0 ], "station_id": "258971", - "steel_ppi": 1.129319793, + "steel_ppi": 1.128834356, "step": 3600.0, + "stim_cost_per_well_calc": 399107.96625, "stim_success_rate": 0.0, + "stim_total_cost_calc": 1396105.2876515247, "stimulation_type": 0.0, "subsurface_water_loss": 2.0, + "sum_prod_inj_total_cost_calc": 21748383.520743308, "system_capacity": 32813.60319442342, - "system_itc_basis_cost": 132083914.65550557, + "system_capacity_calc": 32813.60319442342, + "system_itc_basis_cost": 132083914.65550559, "system_itc_basis_cost_fed_include": 1.0, "system_itc_basis_cost_sta_include": 0.0, "system_itc_basis_percent": 100.0, - "system_recapitalization_cost": 41580250.34535558, + "system_recapitalization_cost_calc": 41580250.34535558, "system_use_lifetime_output": 1.0, - "system_use_recapitalization": 1.0, "tax_investor_equity_percent": 60.0, "tax_investor_postflip_cash_percent": 10.0, "tax_investor_postflip_tax_percent": 10.0, @@ -19917,13 +19961,24 @@ "temp_decline_max": 30.0, "temp_decline_rate": 0.5, "tod_library": "Uniform Dispatch", + "total_capital_cost_calc": 102459373.51558341, "total_direct_cost": 110530472.51506743, - "total_getem_om_cost": 3828237.971647888, - "total_indirect_cost": 21553442.140438148, - "total_installed_cost": 132083914.65550557, - "turbine_ppi": 0.882749597, + "total_direct_cost_calc": 110530472.51506743, + "total_drilling_cost_calc": 39907119.993836689, + "total_drilling_cost_used_calc": 39907119.993836689, + "total_gathering_cost_calc": 2076132.1828251726, + "total_getem_om_cost": 42468736.891191449, + "total_getem_om_cost_calc": 3360484.412068537, + "total_indirect_cost": 21553442.14043815, + "total_installed_cost": 132083914.65550559, + "total_installed_cost_calc": 132083914.65550559, + "total_plant_cost_calc": 59064485.74996216, + "total_plant_cost_used_calc": 59064485.74996216, + "total_pump_cost_calc": 993103.4563452428, + "total_pump_gathering_cost_used_calc": 3487767.771784563, + "total_surface_equipment_cost_calc": 2304639.4651651426, + "turbine_ppi": 0.882850242, "tz": -8.0, - "ui_calculations_only": 0.0, "ui_depr_alloc_custom_percent": 0.0, "ui_depr_alloc_macrs_15_percent": 0.0, "ui_depr_alloc_macrs_5_percent": 0.0, diff --git a/deploy/runtime/defaults/Geothermal Power_LCOE Calculator.json b/deploy/runtime/defaults/Geothermal Power_LCOE Calculator.json index fd06b63991..8a80c12706 100644 --- a/deploy/runtime/defaults/Geothermal Power_LCOE Calculator.json +++ b/deploy/runtime/defaults/Geothermal Power_LCOE Calculator.json @@ -1,6 +1,5 @@ { "CT": 3.0, - "HTF": 3.0, "P_boil": 2.0, "P_cond_min": 1.25, "P_cond_ratio": 1.0028, @@ -31,6 +30,7 @@ ], "allow_reservoir_replacements": 0.0, "ambient_pressure": 14.7, + "analysis_period": 1.0, "analysis_type": 0.0, "annual_albedo": NaN, "annual_beam": 7.92706, @@ -44,13 +44,15 @@ "annual_tdry": 24.0951, "annual_twet": NaN, "annual_wspd": 2.28094, - "baseline_cost": 1138.155559953614, + "baseline_cost_calc": -999.0, + "bottom_hole_pressure_calc": -999.0, "c_construction_cost": [ 40.0, 30.0, 20.0, 10.0 ], + "c_construction_duration": 0.0, "c_construction_interest": 6.5, "c_debt_percent": 60.0, "c_depreciation_schedule": [ @@ -66,32 +68,58 @@ "c_lifetime": 20.0, "c_nominal_interest_rate": 7.0, "c_tax_rate": 28.0, - "capital_cost": 127242560.70111408, "casing_size": 9.625, "city": "-", - "construction_ppi": 0.788589981, + "conf_drilling_cost_calc": -999.0, + "conf_total_cost_calc": -999.0, + "const_per_interest_rate1": -999.0, + "const_per_interest_rate2": -999.0, + "const_per_interest_rate3": -999.0, + "const_per_interest_rate4": -999.0, + "const_per_interest_rate5": -999.0, + "const_per_months1": -999.0, + "const_per_months2": -999.0, + "const_per_months3": -999.0, + "const_per_months4": -999.0, + "const_per_months5": -999.0, + "const_per_percent1": -999.0, + "const_per_percent2": -999.0, + "const_per_percent3": -999.0, + "const_per_percent4": -999.0, + "const_per_percent5": -999.0, + "const_per_upfront_rate1": -999.0, + "const_per_upfront_rate2": -999.0, + "const_per_upfront_rate3": -999.0, + "const_per_upfront_rate4": -999.0, + "const_per_upfront_rate5": -999.0, + "construction_financing_cost_calc": -999.0, + "construction_ppi": 0.790556, + "contingency_cost_calc": -999.0, "conversion_subtype": 0.0, "conversion_type": 0.0, "country": "-", "dT_cw_ref": 10.0, "decline_type": 0.0, - "degradation": [ - 0.0 - ], "delta_pressure_equip": 40.0, "design_temp": 200.0, - "drilling_ppi": 0.319286373, + "design_temp_calc": -999.0, + "drilling_ppi": 0.319, "drilling_success_rate": 76.0, "dt_prod_well": 0.0, "elev": 82.0, "enable_interconnection_limit": 0.0, - "engineering_ppi": 0.77985529, + "engineering_ppi": 0.77988, + "epc_total_cost_calc": -999.0, "eta_ref": 0.17, "excess_pressure_pump": 50.0, + "expl_cost_per_well_calc": -999.0, + "expl_drilling_cost_calc": -999.0, + "expl_total_cost_calc": -999.0, "exploration_wells_production": 0.0, "failed_prod_flow_ratio": 0.3, + "field_gathering_num_wells_calc": -999.0, "file_name": "blythe_ca_33.617773_-114.588261_psmv3_60_tmy.csv", - "fixed_charge_rate": 0.097199833805951, + "fixed_charge_rate": 0.094089, "fixed_operating_cost": 6087700.0, "fracture_angle": 15.0, "fracture_aperature": 0.0004, @@ -101,97 +129,96 @@ "gen": [ 0.0 ], + "geo_financial_model": -999.0, "geopowerblock.pwrb.condenser_type": 2.0, "geopowerblock.pwrb.model_name": "0", "geotherm.avg_reservoir_temp": 200.0, "geotherm.avg_reservoir_tempF": 392.0, "geotherm.basecase_choice": 0.0, - "geotherm.bottom_hole_pressure": 2362.8117253807779, - "geotherm.bottom_hole_pressureBar": 162.91013423533719, + "geotherm.bottom_hole_pressure": 2362.81, + "geotherm.bottom_hole_pressureBar": 162.91, "geotherm.conversion_type_name": "0", - "geotherm.cost.capital_total": 99236376.89886368, + "geotherm.cost.capital_total": 145942000.0, "geotherm.cost.conf_drill": 0.0, "geotherm.cost.conf_multiplier": 1.2, "geotherm.cost.conf_non_drill": 250000.0, "geotherm.cost.conf_num_wells": 0.0, "geotherm.cost.conf_per_well": 5172670.0, - "geotherm.cost.conf_total": 0.0, + "geotherm.cost.conf_total": 250000.0, "geotherm.cost.confirm_wells_num": 0.0, "geotherm.cost.confirm_wells_percent": 50.0, - "geotherm.cost.contingency": 7242753.394955634, + "geotherm.cost.contingency": 11285100.0, "geotherm.cost.contingency_percent": 10.0, "geotherm.cost.contingency_percent2": 0.0, - "geotherm.cost.drilling.amount": 34129805.80021309, - "geotherm.cost.drilling.amount_calc": 34129805.80021309, + "geotherm.cost.drilling.amount": 43816600.0, + "geotherm.cost.drilling.amount_calc": 0.0, "geotherm.cost.drilling.amount_specified": 0.0, "geotherm.cost.drilling.calc": 1.0, "geotherm.cost.epc.fixed": 0.0, - "geotherm.cost.epc.nonfixed": 17036660.84701109, "geotherm.cost.epc.percent": 16.0, - "geotherm.cost.epc.total": 17036660.84701109, - "geotherm.cost.expl_drill": 0.0, + "geotherm.cost.epc.total": 25156300.0, + "geotherm.cost.expl_drill": 2155280.0, + "geotherm.cost.expl_lump_sum": 0.0, "geotherm.cost.expl_multiplier": 0.5, "geotherm.cost.expl_non_drill": 750000.0, "geotherm.cost.expl_num_wells": 1.0, - "geotherm.cost.expl_per_well": 1746107.415150193, - "geotherm.cost.expl_total": 0.0, + "geotherm.cost.expl_per_well": 2155280.0, + "geotherm.cost.expl_total": 2905280.0, "geotherm.cost.indirect.amount_specified": 0.0, "geotherm.cost.indirect.calc": 1.0, "geotherm.cost.inj_cost_curve": 0.0, "geotherm.cost.inj_cost_curve_welldiam": 0.0, "geotherm.cost.inj_cost_curve_welltype": 0.0, - "geotherm.cost.inj_drill": 7364767.388535147, - "geotherm.cost.inj_num_wells": 2.1089101748936964, - "geotherm.cost.inj_per_well": 3492214.830300386, + "geotherm.cost.inj_drill": 9090590.0, + "geotherm.cost.inj_num_wells": 2.10891, + "geotherm.cost.inj_per_well": 4310560.0, "geotherm.cost.inj_prod_well_ratio": 0.5, - "geotherm.cost.inj_pump_cost_per_pump": 341258.81382425417, - "geotherm.cost.inj_wells_drilled": 2.1089101748936964, - "geotherm.cost.installed_per_capacity": 4241.418690037128, - "geotherm.cost.num_pumps": 4.231554513190061, + "geotherm.cost.inj_pump_cost_per_pump": 0.0, + "geotherm.cost.inj_wells_drilled": 1.60277, + "geotherm.cost.installed_per_capacity": 6262.87, "geotherm.cost.other_per_pump": 10000.0, "geotherm.cost.plant": 100000.0, "geotherm.cost.plant_auto_estimate": 0.0, "geotherm.cost.plant_auto_estimate_last_setting": 0.0, - "geotherm.cost.plant_per_kW": 1138.155559953614, + "geotherm.cost.plant_per_kW": 0.0, "geotherm.cost.plant_per_kW.bak": 0.0, "geotherm.cost.plant_per_kW_input": 1800.0, - "geotherm.cost.plant_size": 34078.38351844997, - "geotherm.cost.plant_total": 61341090.33320995, - "geotherm.cost.plant_total.amount": 61341090.33320995, + "geotherm.cost.plant_size": 34078.4, + "geotherm.cost.plant_total": 61341100.0, + "geotherm.cost.plant_total.amount": 61341100.0, "geotherm.cost.plant_total.amount_specified": 0.0, "geotherm.cost.plant_total.calc": 1.0, "geotherm.cost.plm.fixed": 0.0, - "geotherm.cost.plm.nonfixed": 3726769.560283676, "geotherm.cost.plm.percent": 3.5, - "geotherm.cost.plm.total": 3726769.560283676, + "geotherm.cost.plm.total": 5502940.0, "geotherm.cost.prod_cost_curve": 0.0, "geotherm.cost.prod_cost_curve_welldiam": 0.0, "geotherm.cost.prod_cost_curve_welltype": 0.0, - "geotherm.cost.prod_drill": 19444075.560772189, - "geotherm.cost.prod_inj_drill": 26808842.949307335, + "geotherm.cost.prod_drill": 24000500.0, + "geotherm.cost.prod_inj_drill": 33091100.0, "geotherm.cost.prod_inj_non_drill": 250000.0, - "geotherm.cost.prod_inj_num_wells": 7.676745060670093, - "geotherm.cost.prod_inj_total": 27058842.949307335, - "geotherm.cost.prod_num_wells": 5.567834885776397, - "geotherm.cost.prod_per_well": 3492214.830300386, - "geotherm.cost.prod_pump_cost_per_well": 187653.74870500563, - "geotherm.cost.prod_req": 4.231554513190061, - "geotherm.cost.prod_wells_drilled": 5.567834885776397, + "geotherm.cost.prod_inj_num_wells": 7.67674, + "geotherm.cost.prod_inj_total": 33341100.0, + "geotherm.cost.prod_num_wells": 5.56783, + "geotherm.cost.prod_per_well": 4310560.0, + "geotherm.cost.prod_pump_cost_per_well": 0.0, + "geotherm.cost.prod_req": 4.23155, + "geotherm.cost.prod_wells_drilled": 4.23155, "geotherm.cost.pump_casing_cost": 0.0, - "geotherm.cost.pump_cost_install": 17929.850444600725, - "geotherm.cost.pump_depth": 1123.1203058328284, + "geotherm.cost.pump_cost_install": 0.0, + "geotherm.cost.pump_depth": 1123.12, "geotherm.cost.pump_fixed": 0.0, "geotherm.cost.pump_installation": 56156.0, - "geotherm.cost.pump_only_cost": 151362.5378483016, + "geotherm.cost.pump_only_cost": 0.0, "geotherm.cost.pump_per_foot": 50.0, "geotherm.cost.pump_per_hp": 12479.2, "geotherm.cost.pump_per_pump": 9155320.0, - "geotherm.cost.pump_size": 733.6462176201694, + "geotherm.cost.pump_size": 733.646, "geotherm.cost.pump_total_per_pump": 9211470.0, - "geotherm.cost.pumping.amount": 3765480.765440636, + "geotherm.cost.pumping.amount": 40784100.0, "geotherm.cost.pumping.amount_specified": 0.0, "geotherm.cost.pumping.calc": 1.0, - "geotherm.cost.pumps_total": 1376510.2235483728, + "geotherm.cost.pumps_total": 39991500.0, "geotherm.cost.recap": 23000000.0, "geotherm.cost.recap_specified": 23000000.0, "geotherm.cost.recap_use_calc": 0.0, @@ -199,18 +226,17 @@ "geotherm.cost.sales_tax.total": 0.0, "geotherm.cost.sales_tax.value": 0.0, "geotherm.cost.stim_non_drill": 6479280.0, - "geotherm.cost.stim_num_wells": 2.1089101748936964, - "geotherm.cost.stim_per_well": 399107.96625, - "geotherm.cost.stim_total": 7320962.850905755, + "geotherm.cost.stim_num_wells": 2.10891, + "geotherm.cost.stim_per_well": 398750.0, + "geotherm.cost.stim_total": 7320210.0, "geotherm.cost.surf_non_drill": 792558.0, - "geotherm.cost.surf_num_wells": 7.676745060670093, - "geotherm.cost.surf_per_well": 252335.1804352219, - "geotherm.cost.surf_total": 1937112.8500393865, - "geotherm.cost.total_installed_millions": 127.24256070111407, - "geotherm.cost.total_surface_equipment_cost": 2519556.006338059, + "geotherm.cost.surf_num_wells": 6.34046, + "geotherm.cost.surf_per_well": 125000.0, + "geotherm.cost.surf_total": 792558.0, + "geotherm.cost.total_surface_equipment_cost": 0.0, "geotherm.default_input": 0.0, - "geotherm.delta_pressure_reservoir": 349.21180799999999, - "geotherm.delta_pressure_reservoirBar": 24.077306671007265, + "geotherm.delta_pressure_reservoir": 349.212, + "geotherm.delta_pressure_reservoirBar": 24.0773, "geotherm.egs_ambient_temp": 15.0, "geotherm.errors1": "", "geotherm.errors2": "No message", @@ -223,14 +249,12 @@ "geotherm.lookup.temp_array": [ 0.0 ], - "geotherm.net_output": 30.000000000000058, - "geotherm.plant_efficiency_used": 9.224654672876282, + "geotherm.net_output": 30.0, + "geotherm.plant_efficiency_used": 9.22465, "geotherm.resource.choice": "empty", "geotherm.resource_type": 0.0, "geotherm.resource_type_name": "0", "geotherm.temp_gradient": 0.0, - "geotherm.total_flow_gpm": 7387.02471367589, - "geotherm.total_flow_kg_per_s": 465.47099645090676, "geothermal_analysis_period": 30.0, "grid_curtailment": [ 1e38, @@ -8995,7 +9019,9 @@ 1e38 ], "grid_interconnection_limit_kwac": 100000.0, - "gross_output": 34.07838351844997, + "gross_cost_output_calc": -999.0, + "gross_output_calc": -999.0, + "gross_output_ui": 0.0, "hc_ctl1": 0.0, "hc_ctl2": 0.0, "hc_ctl3": 0.0, @@ -9006,47 +9032,81 @@ "hc_ctl8": 0.0, "hc_ctl9": 0.0, "hr_pl_nlev": 8.0, - "hx_ppi": 0.89055794, + "hx_ppi": 0.89067, "hybrid_dispatch_schedule": "111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111", "in_location": "", "in_location_list": "|||", "in_location_options": 0.0, "in_nsrdb_options": 0.0, "in_time_step": 0.0, - "indirect_pump_cost": 451857.6918528766, - "inj_num_pumps": 2.0, + "indirect_cost_calc": -999.0, + "indirect_pump_cost": 0.0, + "indirect_pump_cost_calc": -999.0, + "inj_num_pumps": 1.0, + "inj_num_pumps_calc": -999.0, "inj_prod_well_distance": 1500.0, - "inj_pump_cost": 582443.1562986727, - "inj_pump_hp": 2364.740612217064, + "inj_pump_cost": 372124.0, + "inj_pump_cost_calc": -999.0, + "inj_pump_cost_per_pump_calc": -999.0, + "inj_pump_hp": 1791.37, + "inj_pump_hp_calc": -999.0, + "inj_total_cost_calc": -999.0, + "inj_well_cost_calc": -999.0, "inj_well_diam": 12.25, "injectivity_index": 3000.0, + "installed_cost_per_kW_calc": -999.0, "is_advanced": 0.0, + "is_success_auto_exec": -999.0, "lat": 33.61, "library_folder_list": "x", "library_paths": "\"\"", "lon": -114.58, "model_choice": 0.0, "nameplate": 30000.0, + "net_plant_output_calc": -999.0, + "num_confirm_wells_to_production_calc": -999.0, "num_fractures": 6.0, "num_wells": 3.0, - "num_wells_getem": 4.231554513190061, - "num_wells_getem_inj": 1.602771732919209, + "num_wells_calc": -999.0, + "num_wells_getem": 4.23155, + "num_wells_getem_inj": 1.60277, + "num_wells_getem_inj_calc": -999.0, + "num_wells_getem_inj_drilled_calc": -999.0, + "num_wells_getem_prod_drilled_calc": -999.0, + "num_wells_getem_prod_inj_sum_calc": -999.0, "pb_bd_frac": 0.013, + "piping_cost_per_well_calc": -999.0, + "plant_brine_eff_calc": -999.0, "plant_efficiency_input": 80.0, + "plm_total_cost_calc": -999.0, "ppi_base_year": 0.0, - "process_equip_ppi": 0.884018929, - "prod_pump_cost": 794067.0672497001, + "process_equip_ppi": 0.884044, + "prod_inj_total_cost_calc": -999.0, + "prod_pump_cost": 640514.0, + "prod_pump_cost_calc": -999.0, + "prod_pump_cost_per_well_calc": -999.0, + "prod_total_cost_calc": -999.0, "prod_well_choice": 0.0, + "prod_well_cost_calc": -999.0, "pump_casing_total_cost": 38978900.0, - "pump_depth": 1123.1203058328284, + "pump_cost_install_calc": -999.0, + "pump_depth": 1123.12, + "pump_depth_ft_calc": -999.0, "pump_efficiency": 67.5, - "pump_ppi": 0.853374525, - "pump_size_hp": 733.6462176201694, - "pump_work": 4.078383518449912, - "pump_work_watthr_lb": 1.1039748866281274, - "pumpwork_inj": 0.47733005904897299, - "pumpwork_prod": 0.6266448275791545, + "pump_only_cost_calc": -999.0, + "pump_ppi": 0.853394, + "pump_size_hp": 733.646, + "pump_size_hp_calc": -999.0, + "pump_watthr_per_lb_calc": -999.0, + "pump_work": 4.07838, + "pump_work_calc": -999.0, + "pump_work_watthr_lb": 1.10397, + "pumpwork_inj": 0.47733, + "pumpwork_inj_calc": -999.0, + "pumpwork_prod": 0.626645, + "pumpwork_prod_calc": -999.0, "q_sby_frac": 0.2, + "reservoir_avg_temp_calc": -999.0, "reservoir_height": 100.0, "reservoir_model_inputs": [ [ @@ -9522,6 +9582,7 @@ ], "reservoir_model_inputs_shown": 0.0, "reservoir_permeability": 0.05, + "reservoir_pressure_calc": -999.0, "reservoir_pressure_change": 2500.0, "reservoir_pressure_change_type": 0.0, "reservoir_pressure_change_type_old_setting": 0.0, @@ -9533,6 +9594,8 @@ "rock_density": 2600.0, "rock_specific_heat": 950.0, "rock_thermal_conductivity": 3.0, + "sales_tax_cost_calc": -999.0, + "sales_tax_rate": -999.0, "solar_data_file_name": "blythe_ca_33.617773_-114.588261_psmv3_60_tmy.csv", "solar_data_source": "NSRDB", "solar_resource": "blythe_ca_33.617773_-114.588261_psmv3_60_tmy", @@ -9543,35 +9606,48 @@ "startup_time": 1.0, "state": "-", "station_id": "258971", - "steel_ppi": 1.129319793, + "steel_ppi": 1.12883, "step": 3600.0, + "stim_cost_per_well_calc": -999.0, "stim_success_rate": 0.0, + "stim_total_cost_calc": -999.0, "stimulation_type": 0.0, "subsurface_water_loss": 2.0, - "system_capacity": 34078.38351844997, - "system_recapitalization_cost": 23000000.0, + "sum_prod_inj_total_cost_calc": -999.0, + "system_capacity": 34078.4, + "system_capacity_calc": -999.0, + "system_recapitalization_cost_calc": -999.0, "system_use_lifetime_output": 0.0, - "system_use_recapitalization": 1.0, "temp_decline_max": 30.0, "temp_decline_rate": 0.5, - "total_direct_cost": 106479130.29381931, - "total_indirect_cost": 20763430.407294766, - "total_installed_cost": 127242560.70111408, - "turbine_ppi": 0.882749597, + "total_capital_cost_calc": -999.0, + "total_direct_cost": 157227000.0, + "total_direct_cost_calc": -999.0, + "total_drilling_cost_calc": -999.0, + "total_drilling_cost_used_calc": -999.0, + "total_gathering_cost_calc": -999.0, + "total_getem_om_cost_calc": -999.0, + "total_indirect_cost": 30659200.0, + "total_installed_cost": 187886000.0, + "total_installed_cost_calc": -999.0, + "total_plant_cost_calc": -999.0, + "total_plant_cost_used_calc": -999.0, + "total_pump_cost_calc": -999.0, + "total_pump_gathering_cost_used_calc": -999.0, + "total_surface_equipment_cost_calc": -999.0, + "turbine_ppi": 0.88285, "tz": -8.0, - "ui_calculations_only": 0.0, - "ui_capital_cost_reference": 127242560.70111408, - "ui_cfin": 1.072918743490632, - "ui_crf": 0.08426619052849123, + "ui_capital_cost_reference": 187886000.0, + "ui_cfin": 1.03858, + "ui_crf": 0.0842662, "ui_fcr_input_option": 1.0, "ui_fixed_charge_rate": 0.098, - "ui_ireal": 0.043902439024390508, - "ui_operating_cost_fixed": 6087700.0, - "ui_pfin": 1.0750912546188594, + "ui_ireal": 0.0439024, + "ui_lbl_cff_msg": "", + "ui_pfin": 1.07509, "ui_step_minutes": 60.0, - "ui_system_capacity": 34078.38351844997, - "ui_variable_operating_cost": 0.0, - "ui_wacc": 0.055843902439024487, + "ui_system_capacity": 34078.4, + "ui_wacc": 0.0558439, "use_specific_weather_file": 0.0, "use_weather_file_conditions": 0.0, "user_specified_weather_file": "", diff --git a/deploy/runtime/defaults/Geothermal Power_Leveraged Partnership Flip.json b/deploy/runtime/defaults/Geothermal Power_Leveraged Partnership Flip.json index 206ab3b424..2a35283c52 100644 --- a/deploy/runtime/defaults/Geothermal Power_Leveraged Partnership Flip.json +++ b/deploy/runtime/defaults/Geothermal Power_Leveraged Partnership Flip.json @@ -1,6 +1,5 @@ { "CT": 3.0, - "HTF": 3.0, "P_boil": 2.0, "P_cond_min": 1.25, "P_cond_ratio": 1.0028, @@ -35,24 +34,25 @@ "analysis_period_warning": "No messages.", "analysis_type": 0.0, "annual_albedo": NaN, - "annual_beam": 7.92706, - "annual_csky_beam": 0.0, - "annual_csky_diffuse": 0.0, - "annual_csky_global": 0.0, - "annual_diffuse": 1.24088, - "annual_global": 5.9594, - "annual_precipitation": 0.0, + "annual_beam": 7.927057534246576, + "annual_csky_beam": NaN, + "annual_csky_diffuse": NaN, + "annual_csky_global": NaN, + "annual_diffuse": 1.2408849315068494, + "annual_global": 5.959397260273972, + "annual_precipitation": NaN, "annual_snow": NaN, - "annual_tdry": 24.0951, + "annual_tdry": 24.09511485279423, "annual_twet": NaN, - "annual_wspd": 2.28094, - "baseline_cost": 1139.3444299661827, + "annual_wspd": 2.280936073059361, + "baseline_cost_calc": 1139.3444299661827, "batt_itc_basis_cost": 0.0, "batt_itc_basis_cost_fed_include": 0.0, "batt_itc_basis_cost_sta_include": 0.0, "batt_itc_basis_percent": 0.0, "batt_salvage_percentage": 0.0, "batt_salvage_value": 0.0, + "bottom_hole_pressure_calc": 2362.8117253807779, "casing_size": 9.625, "cbi_fed_amount": 0.0, "cbi_fed_deprbas_fed": 0.0, @@ -79,7 +79,9 @@ "cbi_uti_tax_fed": 1.0, "cbi_uti_tax_sta": 1.0, "city": "-", - "const_per_interest1": 8585454.45260786, + "conf_drilling_cost_calc": 16762631.185441852, + "conf_total_cost_calc": 16762631.185441852, + "const_per_interest1": 8585454.452607863, "const_per_interest2": 5547524.415531235, "const_per_interest3": 0.0, "const_per_interest4": 0.0, @@ -89,7 +91,7 @@ "const_per_interest_rate3": 0.0, "const_per_interest_rate4": 0.0, "const_per_interest_rate5": 0.0, - "const_per_interest_total": 14132978.868139096, + "const_per_interest_total": 14132978.868139098, "const_per_months1": 60.0, "const_per_months2": 24.0, "const_per_months3": 0.0, @@ -106,13 +108,13 @@ "const_per_percent4": 0.0, "const_per_percent5": 0.0, "const_per_percent_total": 100.0, - "const_per_principal1": 52833565.86220223, + "const_per_principal1": 52833565.862202238, "const_per_principal2": 79250348.79330334, "const_per_principal3": 0.0, "const_per_principal4": 0.0, "const_per_principal5": 0.0, "const_per_principal_total": 132083914.65550557, - "const_per_total1": 9113790.111229884, + "const_per_total1": 9113790.111229886, "const_per_total2": 7132531.391397301, "const_per_total3": 0.0, "const_per_total4": 0.0, @@ -122,8 +124,10 @@ "const_per_upfront_rate3": 0.0, "const_per_upfront_rate4": 0.0, "const_per_upfront_rate5": 0.0, - "construction_financing_cost": 16246321.502627185, - "construction_ppi": 0.788589981, + "construction_financing_cost": 16246321.502627187, + "construction_financing_cost_calc": 16246321.502627187, + "construction_ppi": 0.790556, + "contingency_cost_calc": 8071098.99948401, "conversion_subtype": 0.0, "conversion_type": 0.0, "cost_debt_closing": 0.0, @@ -139,9 +143,6 @@ "debt_option": 1.0, "debt_percent": 50.0, "decline_type": 0.0, - "degradation": [ - 0.0 - ], "delta_pressure_equip": 40.0, "depr_alloc_custom_percent": 0.0, "depr_alloc_macrs_15_percent": 0.0, @@ -155,7 +156,7 @@ "depr_basis_mat": [ [ 1.0, - 132083914.65550557, + 132083914.65550559, 100.0, 1.0, 0.0, @@ -209,6 +210,7 @@ "depr_itc_sta_sl_5": 0.0, "depr_stabas_method": 1.0, "design_temp": 200.0, + "design_temp_calc": 200.0, "developer_equity_percent": 2.0, "developer_postflip_cash_percent": 90.0, "developer_postflip_tax_percent": 90.0, @@ -9616,7 +9618,7 @@ 1.0, 1.0 ], - "drilling_ppi": 0.319286373, + "drilling_ppi": 0.319, "drilling_success_rate": 76.0, "dscr": 1.45, "dscr_limit_debt_fraction": 0.0, @@ -9625,7 +9627,8 @@ "dt_prod_well": 0.0, "elev": 82.0, "enable_interconnection_limit": 0.0, - "engineering_ppi": 0.77985529, + "engineering_ppi": 0.77988, + "epc_total_cost_calc": 13263656.701808092, "equip1_reserve_cost": 0.0, "equip1_reserve_freq": 12.0, "equip2_reserve_cost": 0.0, @@ -9636,11 +9639,15 @@ "equip_reserve_depr_sta": 0.0, "eta_ref": 0.17, "excess_pressure_pump": 50.0, + "expl_cost_per_well_calc": 0.0, + "expl_drilling_cost_calc": 0.0, + "expl_total_cost_calc": 0.0, "exploration_wells_production": 2.0, "failed_prod_flow_ratio": 0.3, "federal_tax_rate": [ 21.0 ], + "field_gathering_num_wells_calc": 8.227676296441534, "file_name": "blythe_ca_33.617773_-114.588261_psmv3_60_tmy.csv", "flip_target_percent": 15.0, "flip_target_year": 20.0, @@ -9652,6 +9659,7 @@ "gen": [ 0.0 ], + "geo_financial_model": 2.0, "geopowerblock.pwrb.condenser_type": 2.0, "geopowerblock.pwrb.model_name": "0", "geotherm.avg_reservoir_temp": 200.0, @@ -9677,14 +9685,14 @@ "geotherm.cost.drilling.amount_specified": 0.0, "geotherm.cost.drilling.calc": 1.0, "geotherm.cost.epc.fixed": 0.0, - "geotherm.cost.epc.nonfixed": 13263656.70180809, "geotherm.cost.epc.percent": 12.0, - "geotherm.cost.epc.total": 13263656.70180809, + "geotherm.cost.epc.total": 13263656.701808092, "geotherm.cost.expl_drill": 0.0, + "geotherm.cost.expl_lump_sum": 0.0, "geotherm.cost.expl_multiplier": 0.5, "geotherm.cost.expl_non_drill": 750000.0, "geotherm.cost.expl_num_wells": 1.0, - "geotherm.cost.expl_per_well": 1746107.415150193, + "geotherm.cost.expl_per_well": 0.0, "geotherm.cost.expl_total": 0.0, "geotherm.cost.indirect.amount_specified": 0.0, "geotherm.cost.indirect.calc": 1.0, @@ -9697,8 +9705,7 @@ "geotherm.cost.inj_prod_well_ratio": 0.75, "geotherm.cost.inj_pump_cost_per_pump": 267769.04588283775, "geotherm.cost.inj_wells_drilled": 3.4980641974382657, - "geotherm.cost.installed_per_capacity": 4402.797155183511, - "geotherm.cost.num_pumps": 4.074505195242484, + "geotherm.cost.installed_per_capacity": 4402.797155183512, "geotherm.cost.other_per_pump": 10000.0, "geotherm.cost.plant": 100000.0, "geotherm.cost.plant_auto_estimate": 0.0, @@ -9706,15 +9713,14 @@ "geotherm.cost.plant_per_kW": 1139.3444299661827, "geotherm.cost.plant_per_kW.bak": 0.0, "geotherm.cost.plant_per_kW_input": 1800.0, - "geotherm.cost.plant_size": 32813.60319442342, + "geotherm.cost.plant_size": 26069.215350902592, "geotherm.cost.plant_total": 59064485.74996216, "geotherm.cost.plant_total.amount": 59064485.74996216, "geotherm.cost.plant_total.amount_specified": 0.0, "geotherm.cost.plant_total.calc": 1.0, "geotherm.cost.plm.fixed": 0.0, - "geotherm.cost.plm.nonfixed": 3868566.5380273598, "geotherm.cost.plm.percent": 3.5, - "geotherm.cost.plm.total": 3868566.5380273598, + "geotherm.cost.plm.total": 3868566.5380273608, "geotherm.cost.prod_cost_curve": 0.0, "geotherm.cost.prod_cost_curve_welldiam": 0.0, "geotherm.cost.prod_cost_curve_welltype": 0.0, @@ -9757,7 +9763,6 @@ "geotherm.cost.surf_num_wells": 8.227676296441534, "geotherm.cost.surf_per_well": 252335.1804352219, "geotherm.cost.surf_total": 2076132.1828251726, - "geotherm.cost.total_installed_millions": 132.08391465550558, "geotherm.cost.total_surface_equipment_cost": 2304639.4651651426, "geotherm.default_input": 0.0, "geotherm.delta_pressure_reservoir": 349.21180799999999, @@ -9780,8 +9785,6 @@ "geotherm.resource_type": 0.0, "geotherm.resource_type_name": "0", "geotherm.temp_gradient": 0.0, - "geotherm.total_flow_gpm": 7112.863719334803, - "geotherm.total_flow_kg_per_s": 448.1955714766732, "geothermal_analysis_period": 25.0, "grid_curtailment": [ 1e38, @@ -18546,7 +18549,9 @@ 1e38 ], "grid_interconnection_limit_kwac": 100000.0, - "gross_output": 32.81360319442342, + "gross_cost_output_calc": 26069.215350902592, + "gross_output_calc": 32.81360319442342, + "gross_output_ui": 32.81360319442342, "hc_ctl1": 0.0, "hc_ctl2": 0.0, "hc_ctl3": 0.0, @@ -18557,7 +18562,7 @@ "hc_ctl8": 0.0, "hc_ctl9": 0.0, "hr_pl_nlev": 8.0, - "hx_ppi": 0.89055794, + "hx_ppi": 0.89067, "hybrid_dispatch_schedule": "111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111", "ibi_fed_amount": 0.0, "ibi_fed_amount_deprbas_fed": 0.0, @@ -18608,17 +18613,27 @@ "in_location_options": 0.0, "in_nsrdb_options": 0.0, "in_time_step": 0.0, + "indirect_cost_calc": 21553442.14043815, "indirect_pump_cost": 418532.13261414787, + "indirect_pump_cost_calc": 418532.13261414787, "inflation_rate": 2.5, "inj_num_pumps": 1.0, + "inj_num_pumps_calc": 1.0, "inj_prod_well_distance": 1500.0, "inj_pump_cost": 228507.28233996986, + "inj_pump_cost_calc": 228507.28233996986, + "inj_pump_cost_per_pump_calc": 267769.04588283775, "inj_pump_hp": 783.8610732526882, + "inj_pump_hp_calc": 783.8610732526882, + "inj_total_cost_calc": 12215991.667636728, + "inj_well_cost_calc": 3492214.830300386, "inj_well_diam": 12.25, "injectivity_index": 3000.0, + "installed_cost_per_kW_calc": 4402.797155183512, "insurance_rate": 0.5, "is_advanced": 0.0, - "itc_basis_cost_capex_fed": 132083914.65550557, + "is_success_auto_exec": 1.0, + "itc_basis_cost_capex_fed": 132083914.65550559, "itc_basis_cost_capex_sta": 0.0, "itc_basis_cost_percent_fed": 100.0, "itc_basis_cost_percent_sta": 0.0, @@ -18652,7 +18667,7 @@ "itc_sta_percent_maxvalue": [ 1e38 ], - "lat": 33.61, + "lat": 33.61000061035156, "lib_dispatch_factor1": 1.0, "lib_dispatch_factor2": 1.0, "lib_dispatch_factor3": 1.0, @@ -19293,7 +19308,7 @@ "library_folder_list": "x", "library_paths": "\"\"", "loan_moratorium": 0.0, - "lon": -114.58, + "lon": -114.58000183105469, "mera_cost1": 0.0, "mera_cost2": 0.0, "mera_cost3": 0.0, @@ -19304,13 +19319,20 @@ "months_receivables_reserve": 0.0, "months_working_reserve": 6.0, "nameplate": 30000.0, + "net_plant_output_calc": 30.000000000000055, "nominal_discount_rate": 9.060000000000003, "non_itc_basis_depreciation_allocation": 0.0, "non_itc_basis_percent_depr": 0.0, + "num_confirm_wells_to_production_calc": 2.0, "num_fractures": 6.0, "num_wells": 3.0, + "num_wells_calc": 4.074505195242484, "num_wells_getem": 4.074505195242484, "num_wells_getem_inj": 2.6585287900530818, + "num_wells_getem_inj_calc": 2.6585287900530818, + "num_wells_getem_inj_drilled_calc": 3.4980641974382657, + "num_wells_getem_prod_drilled_calc": 2.729612099003268, + "num_wells_getem_prod_inj_sum_calc": 6.227676296441533, "om_capacity": [ 175.0 ], @@ -19357,7 +19379,10 @@ "pbi_uti_tax_fed": 1.0, "pbi_uti_tax_sta": 1.0, "pbi_uti_term": 0.0, + "piping_cost_per_well_calc": 252335.1804352219, + "plant_brine_eff_calc": 9.224654672876282, "plant_efficiency_input": 80.0, + "plm_total_cost_calc": 3868566.5380273608, "ppa_escalation": 1.0, "ppa_multiplier_model": 0.0, "ppa_price_input": [ @@ -19365,12 +19390,17 @@ ], "ppa_soln_mode": 1.0, "ppi_base_year": 0.0, - "process_equip_ppi": 0.884018929, + "process_equip_ppi": 0.884044, + "prod_inj_total_cost_calc": 21898383.520743308, "prod_pump_cost": 764596.1740052729, + "prod_pump_cost_calc": 764596.1740052729, + "prod_pump_cost_per_well_calc": 187653.74870500563, + "prod_total_cost_calc": 9532391.853106579, "prod_well_choice": 0.0, + "prod_well_cost_calc": 3492214.830300386, "prop_tax_assessed_decline": 0.0, "prop_tax_cost_assessed_percent": 100.0, - "property_assessed_value": 132083914.65550557, + "property_assessed_value": 132083914.65550559, "property_tax_rate": 1.0, "ptc_fed_amount": [ 0.0 @@ -19383,17 +19413,26 @@ "ptc_sta_escal": 0.0, "ptc_sta_term": 0.0, "pump_casing_total_cost": 37532200.0, + "pump_cost_install_calc": 17929.850444600725, "pump_depth": 1123.1203058328284, + "pump_depth_ft_calc": 1123.1203058328284, "pump_efficiency": 67.5, - "pump_ppi": 0.853374525, + "pump_only_cost_calc": 151362.5378483016, + "pump_ppi": 0.853394, "pump_size_hp": 733.6462176201694, + "pump_size_hp_calc": 733.6462176201694, + "pump_watthr_per_lb_calc": 0.7909682365960984, "pump_work": 2.8136031944233679, + "pump_work_calc": 2.8136031944233679, "pump_work_watthr_lb": 0.7909682365960984, "pumpwork_inj": 0.1643234090169439, + "pumpwork_inj_calc": 0.1643234090169439, "pumpwork_prod": 0.6266448275791545, + "pumpwork_prod_calc": 0.6266448275791545, "q_sby_frac": 0.2, "real_discount_rate": 6.4, "reserves_interest": 1.75, + "reservoir_avg_temp_calc": 200.0, "reservoir_height": 100.0, "reservoir_model_inputs": [ [ @@ -19869,6 +19908,7 @@ ], "reservoir_model_inputs_shown": 0.0, "reservoir_permeability": 0.05, + "reservoir_pressure_calc": 349.21180799999999, "reservoir_pressure_change": 2500.0, "reservoir_pressure_change_type": 0.0, "reservoir_pressure_change_type_old_setting": 0.0, @@ -19880,6 +19920,7 @@ "rock_density": 2600.0, "rock_specific_heat": 950.0, "rock_thermal_conductivity": 3.0, + "sales_tax_cost_calc": 4421218.900602697, "sales_tax_rate": 5.0, "salvage_percentage": 0.0, "salvage_value": 0.0, @@ -19896,8 +19937,8 @@ "solution_mode_message": "", "specified_pump_work_amount": 0.0, "specify_pump_work": 0.0, - "start_day_of_year": 0.0, - "start_day_of_year_tod_ui": 0.0, + "start_day_of_year": 3.335046e-317, + "start_day_of_year_tod_ui": 3.335046e-317, "startup_frac": 0.2, "startup_time": 1.0, "state": "-", @@ -19905,19 +19946,22 @@ 7.0 ], "station_id": "258971", - "steel_ppi": 1.129319793, + "steel_ppi": 1.12883, "step": 3600.0, + "stim_cost_per_well_calc": 399107.96625, "stim_success_rate": 0.0, + "stim_total_cost_calc": 1396105.2876515247, "stimulation_type": 0.0, "subsurface_water_loss": 2.0, + "sum_prod_inj_total_cost_calc": 21748383.520743308, "system_capacity": 32813.60319442342, - "system_itc_basis_cost": 132083914.65550557, + "system_capacity_calc": 32813.60319442342, + "system_itc_basis_cost": 132083914.65550559, "system_itc_basis_cost_fed_include": 1.0, "system_itc_basis_cost_sta_include": 0.0, "system_itc_basis_percent": 100.0, - "system_recapitalization_cost": 41580250.34535558, + "system_recapitalization_cost_calc": 41580250.34535558, "system_use_lifetime_output": 1.0, - "system_use_recapitalization": 1.0, "tax_investor_equity_percent": 98.0, "tax_investor_postflip_cash_percent": 10.0, "tax_investor_postflip_tax_percent": 10.0, @@ -19928,13 +19972,24 @@ "term_int_rate": 7.0, "term_tenor": 18.0, "tod_library": "Uniform Dispatch", + "total_capital_cost_calc": 102459373.51558341, "total_direct_cost": 110530472.51506743, - "total_getem_om_cost": 3828237.971647888, - "total_indirect_cost": 21553442.140438148, - "total_installed_cost": 132083914.65550557, - "turbine_ppi": 0.882749597, + "total_direct_cost_calc": 110530472.51506743, + "total_drilling_cost_calc": 39907119.993836689, + "total_drilling_cost_used_calc": 39907119.993836689, + "total_gathering_cost_calc": 2076132.1828251726, + "total_getem_om_cost": 42468700.0, + "total_getem_om_cost_calc": 3360484.412068537, + "total_indirect_cost": 21553442.14043815, + "total_installed_cost": 132083914.65550559, + "total_installed_cost_calc": 132083914.65550559, + "total_plant_cost_calc": 59064485.74996216, + "total_plant_cost_used_calc": 59064485.74996216, + "total_pump_cost_calc": 993103.4563452428, + "total_pump_gathering_cost_used_calc": 3487767.771784563, + "total_surface_equipment_cost_calc": 2304639.4651651426, + "turbine_ppi": 0.88285, "tz": -8.0, - "ui_calculations_only": 0.0, "ui_depr_alloc_custom_percent": 0.0, "ui_depr_alloc_macrs_15_percent": 0.0, "ui_depr_alloc_macrs_5_percent": 0.0, diff --git a/deploy/runtime/defaults/Geothermal Power_Merchant Plant.json b/deploy/runtime/defaults/Geothermal Power_Merchant Plant.json index 0a814c92e5..126d1d26fc 100644 --- a/deploy/runtime/defaults/Geothermal Power_Merchant Plant.json +++ b/deploy/runtime/defaults/Geothermal Power_Merchant Plant.json @@ -1,6 +1,5 @@ { "CT": 3.0, - "HTF": 3.0, "P_boil": 2.0, "P_cond_min": 1.25, "P_cond_ratio": 1.0028, @@ -34,25 +33,26 @@ "analysis_period": 25.0, "analysis_period_warning": "No messages.", "analysis_type": 0.0, - "annual_albedo": 0.225395, - "annual_beam": 7.66733, - "annual_csky_beam": 0.0, - "annual_csky_diffuse": 0.0, - "annual_csky_global": 0.0, - "annual_diffuse": 1.24816, - "annual_global": 5.83339, - "annual_precipitation": 0.0, + "annual_albedo": 0.2253945200002357, + "annual_beam": 7.667331506849315, + "annual_csky_beam": NaN, + "annual_csky_diffuse": NaN, + "annual_csky_global": NaN, + "annual_diffuse": 1.2481643835616439, + "annual_global": 5.8333945205479449, + "annual_precipitation": NaN, "annual_snow": NaN, - "annual_tdry": 16.9747, + "annual_tdry": 16.974657534246576, "annual_twet": NaN, - "annual_wspd": 2.26213, - "baseline_cost": 1139.3444299661827, + "annual_wspd": 2.2621347039827408, + "baseline_cost_calc": 1139.3444299661827, "batt_itc_basis_cost": 0.0, "batt_itc_basis_cost_fed_include": 0.0, "batt_itc_basis_cost_sta_include": 0.0, "batt_itc_basis_percent": 0.0, "batt_salvage_percentage": 0.0, "batt_salvage_value": 0.0, + "bottom_hole_pressure_calc": 2362.8117253807779, "cambium_escalation": 0.0, "cambium_location": "CAISO", "cambium_location_type": "GEA Regions 2023", @@ -87,7 +87,9 @@ "cbi_uti_tax_fed": 1.0, "cbi_uti_tax_sta": 1.0, "city": "-", - "const_per_interest1": 8585454.45260786, + "conf_drilling_cost_calc": 16762631.185441852, + "conf_total_cost_calc": 16762631.185441852, + "const_per_interest1": 8585454.452607863, "const_per_interest2": 5547524.415531235, "const_per_interest3": 0.0, "const_per_interest4": 0.0, @@ -97,7 +99,7 @@ "const_per_interest_rate3": 0.0, "const_per_interest_rate4": 0.0, "const_per_interest_rate5": 0.0, - "const_per_interest_total": 14132978.868139096, + "const_per_interest_total": 14132978.868139098, "const_per_months1": 60.0, "const_per_months2": 24.0, "const_per_months3": 0.0, @@ -114,13 +116,13 @@ "const_per_percent4": 0.0, "const_per_percent5": 0.0, "const_per_percent_total": 100.0, - "const_per_principal1": 52833565.86220223, + "const_per_principal1": 52833565.862202238, "const_per_principal2": 79250348.79330334, "const_per_principal3": 0.0, "const_per_principal4": 0.0, "const_per_principal5": 0.0, "const_per_principal_total": 132083914.65550557, - "const_per_total1": 9113790.111229884, + "const_per_total1": 9113790.111229886, "const_per_total2": 7132531.391397301, "const_per_total3": 0.0, "const_per_total4": 0.0, @@ -130,8 +132,10 @@ "const_per_upfront_rate3": 0.0, "const_per_upfront_rate4": 0.0, "const_per_upfront_rate5": 0.0, - "construction_financing_cost": 16246321.502627185, - "construction_ppi": 0.788589981, + "construction_financing_cost": 16246321.502627187, + "construction_financing_cost_calc": 16246321.502627187, + "construction_ppi": 0.790556, + "contingency_cost_calc": 8071098.99948401, "conversion_subtype": 0.0, "conversion_type": 0.0, "cost_debt_closing": 0.0, @@ -153,9 +157,6 @@ "debt_option": 1.0, "debt_percent": 50.0, "decline_type": 0.0, - "degradation": [ - 0.0 - ], "delta_pressure_equip": 40.0, "depr_alloc_custom_percent": 0.0, "depr_alloc_macrs_15_percent": 0.0, @@ -169,7 +170,7 @@ "depr_basis_mat": [ [ 1.0, - 132083914.65550557, + 132083914.65550559, 100.0, 1.0, 0.0, @@ -223,7 +224,8 @@ "depr_itc_sta_sl_5": 0.0, "depr_stabas_method": 1.0, "design_temp": 200.0, - "drilling_ppi": 0.319286373, + "design_temp_calc": 200.0, + "drilling_ppi": 0.319, "drilling_success_rate": 76.0, "dscr": 1.45, "dscr_limit_debt_fraction": 0.0, @@ -232,7 +234,8 @@ "dt_prod_well": 0.0, "elev": 561.0, "enable_interconnection_limit": 0.0, - "engineering_ppi": 0.77985529, + "engineering_ppi": 0.77988, + "epc_total_cost_calc": 13263656.701808092, "equip1_reserve_cost": 0.0, "equip1_reserve_freq": 12.0, "equip2_reserve_cost": 0.0, @@ -243,11 +246,15 @@ "equip_reserve_depr_sta": 0.0, "eta_ref": 0.17, "excess_pressure_pump": 50.0, + "expl_cost_per_well_calc": 0.0, + "expl_drilling_cost_calc": 0.0, + "expl_total_cost_calc": 0.0, "exploration_wells_production": 2.0, "failed_prod_flow_ratio": 0.3, "federal_tax_rate": [ 21.0 ], + "field_gathering_num_wells_calc": 8.227676296441534, "file_name": "daggett_ca_34.865371_-116.783023_psmv3_60_tmy.csv", "forecast_price_signal_model": 1.0, "fracture_angle": 15.0, @@ -258,6 +265,7 @@ "gen": [ 0.0 ], + "geo_financial_model": 6.0, "geopowerblock.pwrb.condenser_type": 2.0, "geopowerblock.pwrb.model_name": "0", "geotherm.avg_reservoir_temp": 200.0, @@ -283,14 +291,14 @@ "geotherm.cost.drilling.amount_specified": 0.0, "geotherm.cost.drilling.calc": 1.0, "geotherm.cost.epc.fixed": 0.0, - "geotherm.cost.epc.nonfixed": 13263656.70180809, "geotherm.cost.epc.percent": 12.0, - "geotherm.cost.epc.total": 13263656.70180809, + "geotherm.cost.epc.total": 13263656.701808092, "geotherm.cost.expl_drill": 0.0, + "geotherm.cost.expl_lump_sum": 0.0, "geotherm.cost.expl_multiplier": 0.5, "geotherm.cost.expl_non_drill": 750000.0, "geotherm.cost.expl_num_wells": 1.0, - "geotherm.cost.expl_per_well": 1746107.415150193, + "geotherm.cost.expl_per_well": 0.0, "geotherm.cost.expl_total": 0.0, "geotherm.cost.indirect.amount_specified": 0.0, "geotherm.cost.indirect.calc": 1.0, @@ -303,8 +311,7 @@ "geotherm.cost.inj_prod_well_ratio": 0.75, "geotherm.cost.inj_pump_cost_per_pump": 267769.04588283775, "geotherm.cost.inj_wells_drilled": 3.4980641974382657, - "geotherm.cost.installed_per_capacity": 4402.797155183511, - "geotherm.cost.num_pumps": 4.074505195242484, + "geotherm.cost.installed_per_capacity": 4402.797155183512, "geotherm.cost.other_per_pump": 10000.0, "geotherm.cost.plant": 100000.0, "geotherm.cost.plant_auto_estimate": 0.0, @@ -312,15 +319,14 @@ "geotherm.cost.plant_per_kW": 1139.3444299661827, "geotherm.cost.plant_per_kW.bak": 0.0, "geotherm.cost.plant_per_kW_input": 1800.0, - "geotherm.cost.plant_size": 32813.60319442342, + "geotherm.cost.plant_size": 26069.215350902592, "geotherm.cost.plant_total": 59064485.74996216, "geotherm.cost.plant_total.amount": 59064485.74996216, "geotherm.cost.plant_total.amount_specified": 0.0, "geotherm.cost.plant_total.calc": 1.0, "geotherm.cost.plm.fixed": 0.0, - "geotherm.cost.plm.nonfixed": 3868566.5380273598, "geotherm.cost.plm.percent": 3.5, - "geotherm.cost.plm.total": 3868566.5380273598, + "geotherm.cost.plm.total": 3868566.5380273608, "geotherm.cost.prod_cost_curve": 0.0, "geotherm.cost.prod_cost_curve_welldiam": 0.0, "geotherm.cost.prod_cost_curve_welltype": 0.0, @@ -363,7 +369,6 @@ "geotherm.cost.surf_num_wells": 8.227676296441534, "geotherm.cost.surf_per_well": 252335.1804352219, "geotherm.cost.surf_total": 2076132.1828251726, - "geotherm.cost.total_installed_millions": 132.08391465550558, "geotherm.cost.total_surface_equipment_cost": 2304639.4651651426, "geotherm.default_input": 0.0, "geotherm.delta_pressure_reservoir": 349.21180799999999, @@ -386,8 +391,6 @@ "geotherm.resource_type": 0.0, "geotherm.resource_type_name": "0", "geotherm.temp_gradient": 0.0, - "geotherm.total_flow_gpm": 7112.863719334803, - "geotherm.total_flow_kg_per_s": 448.1955714766732, "geothermal_analysis_period": 25.0, "grid_curtailment": [ 1e38, @@ -9152,7 +9155,9 @@ 1e38 ], "grid_interconnection_limit_kwac": 100000.0, - "gross_output": 32.81360319442342, + "gross_cost_output_calc": 26069.215350902592, + "gross_output_calc": 32.81360319442342, + "gross_output_ui": 32.81360319442342, "hc_ctl1": 0.0, "hc_ctl2": 0.0, "hc_ctl3": 0.0, @@ -9163,7 +9168,7 @@ "hc_ctl8": 0.0, "hc_ctl9": 0.0, "hr_pl_nlev": 8.0, - "hx_ppi": 0.89055794, + "hx_ppi": 0.89067, "hybrid_dispatch_schedule": "111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111", "ibi_fed_amount": 0.0, "ibi_fed_amount_deprbas_fed": 0.0, @@ -9214,17 +9219,27 @@ "in_location_options": 0.0, "in_nsrdb_options": 0.0, "in_time_step": 0.0, + "indirect_cost_calc": 21553442.14043815, "indirect_pump_cost": 418532.13261414787, + "indirect_pump_cost_calc": 418532.13261414787, "inflation_rate": 2.5, "inj_num_pumps": 1.0, + "inj_num_pumps_calc": 1.0, "inj_prod_well_distance": 1500.0, "inj_pump_cost": 228507.28233996986, + "inj_pump_cost_calc": 228507.28233996986, + "inj_pump_cost_per_pump_calc": 267769.04588283775, "inj_pump_hp": 783.8610732526882, + "inj_pump_hp_calc": 783.8610732526882, + "inj_total_cost_calc": 12215991.667636728, + "inj_well_cost_calc": 3492214.830300386, "inj_well_diam": 12.25, "injectivity_index": 3000.0, + "installed_cost_per_kW_calc": 4402.797155183512, "insurance_rate": 0.5, "is_advanced": 0.0, - "itc_basis_cost_capex_fed": 132083914.65550557, + "is_success_auto_exec": 1.0, + "itc_basis_cost_capex_fed": 132083914.65550559, "itc_basis_cost_capex_sta": 0.0, "itc_basis_cost_percent_fed": 100.0, "itc_basis_cost_percent_sta": 0.0, @@ -9258,11 +9273,11 @@ "itc_sta_percent_maxvalue": [ 1e38 ], - "lat": 34.85, + "lat": 34.849998474121097, "library_folder_list": "x", "library_paths": "\"\"", "loan_moratorium": 0.0, - "lon": -116.78, + "lon": -116.77999877929688, "mera_cost1": 0.0, "mera_cost2": 0.0, "mera_cost3": 0.0, @@ -666396,13 +666411,20 @@ "mp_error_msg": "", "mp_market_percent_gen": 100.0, "nameplate": 30000.0, + "net_plant_output_calc": 30.000000000000055, "nominal_discount_rate": 9.060000000000003, "non_itc_basis_depreciation_allocation": 0.0, "non_itc_basis_percent_depr": 0.0, + "num_confirm_wells_to_production_calc": 2.0, "num_fractures": 6.0, "num_wells": 3.0, + "num_wells_calc": 4.074505195242484, "num_wells_getem": 4.074505195242484, "num_wells_getem_inj": 2.6585287900530818, + "num_wells_getem_inj_calc": 2.6585287900530818, + "num_wells_getem_inj_drilled_calc": 3.4980641974382657, + "num_wells_getem_prod_drilled_calc": 2.729612099003268, + "num_wells_getem_prod_inj_sum_calc": 6.227676296441533, "om_capacity": [ 175.0 ], @@ -666449,14 +666471,22 @@ "pbi_uti_tax_fed": 1.0, "pbi_uti_tax_sta": 1.0, "pbi_uti_term": 0.0, + "piping_cost_per_well_calc": 252335.1804352219, + "plant_brine_eff_calc": 9.224654672876282, "plant_efficiency_input": 80.0, + "plm_total_cost_calc": 3868566.5380273608, "ppi_base_year": 0.0, - "process_equip_ppi": 0.884018929, + "process_equip_ppi": 0.884044, + "prod_inj_total_cost_calc": 21898383.520743308, "prod_pump_cost": 764596.1740052729, + "prod_pump_cost_calc": 764596.1740052729, + "prod_pump_cost_per_well_calc": 187653.74870500563, + "prod_total_cost_calc": 9532391.853106579, "prod_well_choice": 0.0, + "prod_well_cost_calc": 3492214.830300386, "prop_tax_assessed_decline": 0.0, "prop_tax_cost_assessed_percent": 100.0, - "property_assessed_value": 132083914.65550557, + "property_assessed_value": 132083914.65550559, "property_tax_rate": 1.0, "ptc_fed_amount": [ 0.0 @@ -666469,17 +666499,26 @@ "ptc_sta_escal": 0.0, "ptc_sta_term": 0.0, "pump_casing_total_cost": 37532200.0, + "pump_cost_install_calc": 17929.850444600725, "pump_depth": 1123.1203058328284, + "pump_depth_ft_calc": 1123.1203058328284, "pump_efficiency": 67.5, - "pump_ppi": 0.853374525, + "pump_only_cost_calc": 151362.5378483016, + "pump_ppi": 0.853394, "pump_size_hp": 733.6462176201694, + "pump_size_hp_calc": 733.6462176201694, + "pump_watthr_per_lb_calc": 0.7909682365960984, "pump_work": 2.8136031944233679, + "pump_work_calc": 2.8136031944233679, "pump_work_watthr_lb": 0.7909682365960984, "pumpwork_inj": 0.1643234090169439, + "pumpwork_inj_calc": 0.1643234090169439, "pumpwork_prod": 0.6266448275791545, + "pumpwork_prod_calc": 0.6266448275791545, "q_sby_frac": 0.2, "real_discount_rate": 6.4, "reserves_interest": 1.75, + "reservoir_avg_temp_calc": 200.0, "reservoir_height": 100.0, "reservoir_model_inputs": [ [ @@ -666955,6 +666994,7 @@ ], "reservoir_model_inputs_shown": 0.0, "reservoir_permeability": 0.05, + "reservoir_pressure_calc": 349.21180799999999, "reservoir_pressure_change": 2500.0, "reservoir_pressure_change_type": 0.0, "reservoir_pressure_change_type_old_setting": 0.0, @@ -666967,6 +667007,7 @@ "rock_density": 2600.0, "rock_specific_heat": 950.0, "rock_thermal_conductivity": 3.0, + "sales_tax_cost_calc": 4421218.900602697, "sales_tax_rate": 5.0, "salvage_percentage": 0.0, "salvage_value": 0.0, @@ -666982,7 +667023,7 @@ "solar_resource_file": "daggett_ca_34.865371_-116.783023_psmv3_60_tmy.csv", "specified_pump_work_amount": 0.0, "specify_pump_work": 0.0, - "start_day_of_year": 0.0, + "start_day_of_year": 3.335046e-317, "start_day_of_year_merchant_ui": 3.335046e-317, "startup_frac": 0.2, "startup_time": 1.0, @@ -666991,30 +667032,44 @@ 7.0 ], "station_id": "91486", - "steel_ppi": 1.129319793, + "steel_ppi": 1.12883, "step": 3600.0, + "stim_cost_per_well_calc": 399107.96625, "stim_success_rate": 0.0, + "stim_total_cost_calc": 1396105.2876515247, "stimulation_type": 0.0, "subsurface_water_loss": 2.0, + "sum_prod_inj_total_cost_calc": 21748383.520743308, "system_capacity": 32813.60319442342, - "system_itc_basis_cost": 132083914.65550557, + "system_capacity_calc": 32813.60319442342, + "system_itc_basis_cost": 132083914.65550559, "system_itc_basis_cost_fed_include": 1.0, "system_itc_basis_cost_sta_include": 0.0, "system_itc_basis_percent": 100.0, - "system_recapitalization_cost": 41580250.34535558, + "system_recapitalization_cost_calc": 41580250.34535558, "system_use_lifetime_output": 1.0, - "system_use_recapitalization": 1.0, "temp_decline_max": 30.0, "temp_decline_rate": 0.5, "term_int_rate": 7.0, "term_tenor": 18.0, + "total_capital_cost_calc": 102459373.51558341, "total_direct_cost": 110530472.51506743, - "total_getem_om_cost": 3828237.971647888, - "total_indirect_cost": 21553442.140438148, - "total_installed_cost": 132083914.65550557, - "turbine_ppi": 0.882749597, + "total_direct_cost_calc": 110530472.51506743, + "total_drilling_cost_calc": 39907119.993836689, + "total_drilling_cost_used_calc": 39907119.993836689, + "total_gathering_cost_calc": 2076132.1828251726, + "total_getem_om_cost": 42468700.0, + "total_getem_om_cost_calc": 3360484.412068537, + "total_indirect_cost": 21553442.14043815, + "total_installed_cost": 132083914.65550559, + "total_installed_cost_calc": 132083914.65550559, + "total_plant_cost_calc": 59064485.74996216, + "total_plant_cost_used_calc": 59064485.74996216, + "total_pump_cost_calc": 993103.4563452428, + "total_pump_gathering_cost_used_calc": 3487767.771784563, + "total_surface_equipment_cost_calc": 2304639.4651651426, + "turbine_ppi": 0.88285, "tz": -8.0, - "ui_calculations_only": 0.0, "ui_depr_alloc_custom_percent": 0.0, "ui_depr_alloc_macrs_15_percent": 0.0, "ui_depr_alloc_macrs_5_percent": 0.0, diff --git a/deploy/runtime/defaults/Geothermal Power_None.json b/deploy/runtime/defaults/Geothermal Power_None.json index 61789e07dc..e50cab051d 100644 --- a/deploy/runtime/defaults/Geothermal Power_None.json +++ b/deploy/runtime/defaults/Geothermal Power_None.json @@ -1,6 +1,5 @@ { "CT": 3.0, - "HTF": 3.0, "P_boil": 2.0, "P_cond_min": 1.25, "P_cond_ratio": 1.0028, @@ -31,6 +30,7 @@ ], "allow_reservoir_replacements": 0.0, "ambient_pressure": 14.7, + "analysis_period": 0.0, "analysis_type": 0.0, "annual_albedo": NaN, "annual_beam": 7.92706, @@ -44,26 +44,35 @@ "annual_tdry": 24.0951, "annual_twet": NaN, "annual_wspd": 2.28094, + "baseline_cost_calc": -999.0, + "bottom_hole_pressure_calc": -999.0, "casing_size": 9.625, "city": "-", + "conf_drilling_cost_calc": -999.0, + "conf_total_cost_calc": -999.0, + "construction_financing_cost_calc": -999.0, + "contingency_cost_calc": -999.0, "conversion_subtype": 0.0, "conversion_type": 0.0, "country": "-", "dT_cw_ref": 10.0, "decline_type": 0.0, - "degradation": [ - 0.0 - ], "delta_pressure_equip": 40.0, "design_temp": 200.0, + "design_temp_calc": -999.0, "drilling_success_rate": 76.0, "dt_prod_well": 0.0, "elev": 82.0, "enable_interconnection_limit": 0.0, + "epc_total_cost_calc": -999.0, "eta_ref": 0.17, "excess_pressure_pump": 50.0, + "expl_cost_per_well_calc": -999.0, + "expl_drilling_cost_calc": -999.0, + "expl_total_cost_calc": -999.0, "exploration_wells_production": 0.0, "failed_prod_flow_ratio": 0.3, + "field_gathering_num_wells_calc": -999.0, "file_name": "blythe_ca_33.617773_-114.588261_psmv3_60_tmy.csv", "fracture_angle": 15.0, "fracture_aperature": 0.0004, @@ -73,13 +82,14 @@ "gen": [ 0.0 ], + "geo_financial_model": -999.0, "geopowerblock.pwrb.condenser_type": 2.0, "geopowerblock.pwrb.model_name": "0", "geotherm.avg_reservoir_temp": 200.0, "geotherm.avg_reservoir_tempF": 392.0, "geotherm.basecase_choice": 0.0, - "geotherm.bottom_hole_pressure": 2362.8117253807779, - "geotherm.bottom_hole_pressureBar": 162.91013423533719, + "geotherm.bottom_hole_pressure": 2362.811725380778, + "geotherm.bottom_hole_pressureBar": 162.9101342353372, "geotherm.conversion_type_name": "0", "geotherm.cost.conf_num_wells": 0.0, "geotherm.cost.confirm_wells_num": 0.0, @@ -88,14 +98,14 @@ "geotherm.cost.inj_cost_curve_welldiam": 0.0, "geotherm.cost.inj_cost_curve_welltype": 0.0, "geotherm.cost.inj_prod_well_ratio": 0.5, - "geotherm.cost.inj_wells_drilled": 2.1089101748936964, + "geotherm.cost.inj_wells_drilled": 1.602771732919209, "geotherm.cost.prod_cost_curve": 0.0, "geotherm.cost.prod_cost_curve_welldiam": 0.0, "geotherm.cost.prod_cost_curve_welltype": 0.0, "geotherm.cost.prod_req": 4.231554513190061, - "geotherm.cost.prod_wells_drilled": 5.567834885776397, + "geotherm.cost.prod_wells_drilled": 4.231554513190061, "geotherm.default_input": 0.0, - "geotherm.delta_pressure_reservoir": 349.21180799999999, + "geotherm.delta_pressure_reservoir": 349.211808, "geotherm.delta_pressure_reservoirBar": 24.077306671007265, "geotherm.egs_ambient_temp": 15.0, "geotherm.errors1": "", @@ -115,8 +125,6 @@ "geotherm.resource_type": 0.0, "geotherm.resource_type_name": "0", "geotherm.temp_gradient": 0.0, - "geotherm.total_flow_gpm": 7387.02471367589, - "geotherm.total_flow_kg_per_s": 465.47099645090676, "geothermal_analysis_period": 30.0, "grid_curtailment": [ 1e38, @@ -8881,7 +8889,9 @@ 1e38 ], "grid_interconnection_limit_kwac": 100000.0, - "gross_output": 34.07838351844997, + "gross_cost_output_calc": -999.0, + "gross_output_calc": -999.0, + "gross_output_ui": 0.0, "hc_ctl1": 0.0, "hc_ctl2": 0.0, "hc_ctl3": 0.0, @@ -8898,32 +8908,66 @@ "in_location_options": 0.0, "in_nsrdb_options": 0.0, "in_time_step": 0.0, + "indirect_cost_calc": -999.0, + "indirect_pump_cost_calc": -999.0, + "inj_num_pumps_calc": -999.0, "inj_prod_well_distance": 1500.0, - "inj_pump_hp": 2364.740612217064, + "inj_pump_cost_calc": -999.0, + "inj_pump_cost_per_pump_calc": -999.0, + "inj_pump_hp": 1791.3697659493394, + "inj_pump_hp_calc": -999.0, + "inj_total_cost_calc": -999.0, + "inj_well_cost_calc": -999.0, "inj_well_diam": 12.25, "injectivity_index": 3000.0, + "installed_cost_per_kW_calc": -999.0, "is_advanced": 0.0, + "is_success_auto_exec": -999.0, "lat": 33.61, "library_folder_list": "x", "library_paths": "\"\"", "lon": -114.58, "model_choice": 0.0, "nameplate": 30000.0, + "net_plant_output_calc": -999.0, + "num_confirm_wells_to_production_calc": -999.0, "num_fractures": 6.0, "num_wells": 3.0, + "num_wells_calc": -999.0, "num_wells_getem": 4.231554513190061, "num_wells_getem_inj": 1.602771732919209, + "num_wells_getem_inj_calc": -999.0, + "num_wells_getem_inj_drilled_calc": -999.0, + "num_wells_getem_prod_drilled_calc": -999.0, + "num_wells_getem_prod_inj_sum_calc": -999.0, "pb_bd_frac": 0.013, + "piping_cost_per_well_calc": -999.0, + "plant_brine_eff_calc": -999.0, "plant_efficiency_input": 80.0, + "plm_total_cost_calc": -999.0, + "prod_inj_total_cost_calc": -999.0, + "prod_pump_cost_calc": -999.0, + "prod_pump_cost_per_well_calc": -999.0, + "prod_total_cost_calc": -999.0, "prod_well_choice": 0.0, + "prod_well_cost_calc": -999.0, + "pump_cost_install_calc": -999.0, "pump_depth": 1123.1203058328284, + "pump_depth_ft_calc": -999.0, "pump_efficiency": 67.5, + "pump_only_cost_calc": -999.0, "pump_size_hp": 733.6462176201694, + "pump_size_hp_calc": -999.0, + "pump_watthr_per_lb_calc": -999.0, "pump_work": 4.078383518449912, + "pump_work_calc": -999.0, "pump_work_watthr_lb": 1.1039748866281274, "pumpwork_inj": 0.47733005904897299, + "pumpwork_inj_calc": -999.0, "pumpwork_prod": 0.6266448275791545, + "pumpwork_prod_calc": -999.0, "q_sby_frac": 0.2, + "reservoir_avg_temp_calc": -999.0, "reservoir_height": 100.0, "reservoir_model_inputs": [ [ @@ -9399,6 +9443,7 @@ ], "reservoir_model_inputs_shown": 0.0, "reservoir_permeability": 0.05, + "reservoir_pressure_calc": -999.0, "reservoir_pressure_change": 2500.0, "reservoir_pressure_change_type": 0.0, "reservoir_pressure_change_type_old_setting": 0.0, @@ -9410,6 +9455,7 @@ "rock_density": 2600.0, "rock_specific_heat": 950.0, "rock_thermal_conductivity": 3.0, + "sales_tax_cost_calc": -999.0, "solar_data_file_name": "blythe_ca_33.617773_-114.588261_psmv3_60_tmy.csv", "solar_data_source": "NSRDB", "solar_resource": "blythe_ca_33.617773_-114.588261_psmv3_60_tmy", @@ -9421,14 +9467,30 @@ "state": "-", "station_id": "258971", "step": 3600.0, + "stim_cost_per_well_calc": -999.0, "stim_success_rate": 0.0, + "stim_total_cost_calc": -999.0, "subsurface_water_loss": 2.0, + "sum_prod_inj_total_cost_calc": -999.0, "system_capacity": 34078.38351844997, + "system_capacity_calc": -999.0, + "system_recapitalization_cost_calc": -999.0, "system_use_lifetime_output": 0.0, "temp_decline_max": 30.0, "temp_decline_rate": 0.5, + "total_capital_cost_calc": -999.0, + "total_direct_cost_calc": -999.0, + "total_drilling_cost_calc": -999.0, + "total_drilling_cost_used_calc": -999.0, + "total_gathering_cost_calc": -999.0, + "total_getem_om_cost_calc": -999.0, + "total_installed_cost_calc": -999.0, + "total_plant_cost_calc": -999.0, + "total_plant_cost_used_calc": -999.0, + "total_pump_cost_calc": -999.0, + "total_pump_gathering_cost_used_calc": -999.0, + "total_surface_equipment_cost_calc": -999.0, "tz": -8.0, - "ui_calculations_only": 0.0, "ui_step_minutes": 60.0, "use_specific_weather_file": 0.0, "use_weather_file_conditions": 0.0, diff --git a/deploy/runtime/defaults/Geothermal Power_Sale Leaseback.json b/deploy/runtime/defaults/Geothermal Power_Sale Leaseback.json index 8e6adee57b..5bffb78892 100644 --- a/deploy/runtime/defaults/Geothermal Power_Sale Leaseback.json +++ b/deploy/runtime/defaults/Geothermal Power_Sale Leaseback.json @@ -1,6 +1,5 @@ { "CT": 3.0, - "HTF": 3.0, "P_boil": 2.0, "P_cond_min": 1.25, "P_cond_ratio": 1.0028, @@ -35,24 +34,25 @@ "analysis_period_warning": "No messages.", "analysis_type": 0.0, "annual_albedo": NaN, - "annual_beam": 7.92706, - "annual_csky_beam": 0.0, - "annual_csky_diffuse": 0.0, - "annual_csky_global": 0.0, - "annual_diffuse": 1.24088, - "annual_global": 5.9594, - "annual_precipitation": 0.0, + "annual_beam": 7.927057534246576, + "annual_csky_beam": NaN, + "annual_csky_diffuse": NaN, + "annual_csky_global": NaN, + "annual_diffuse": 1.2408849315068494, + "annual_global": 5.959397260273972, + "annual_precipitation": NaN, "annual_snow": NaN, - "annual_tdry": 24.0951, + "annual_tdry": 24.09511485279423, "annual_twet": NaN, - "annual_wspd": 2.28094, - "baseline_cost": 1139.3444299661827, + "annual_wspd": 2.280936073059361, + "baseline_cost_calc": 1139.3444299661827, "batt_itc_basis_cost": 0.0, "batt_itc_basis_cost_fed_include": 0.0, "batt_itc_basis_cost_sta_include": 0.0, "batt_itc_basis_percent": 0.0, "batt_salvage_percentage": 0.0, "batt_salvage_value": 0.0, + "bottom_hole_pressure_calc": 2362.8117253807779, "casing_size": 9.625, "cbi_fed_amount": 0.0, "cbi_fed_deprbas_fed": 0.0, @@ -79,7 +79,9 @@ "cbi_uti_tax_fed": 1.0, "cbi_uti_tax_sta": 1.0, "city": "-", - "const_per_interest1": 8585454.45260786, + "conf_drilling_cost_calc": 16762631.185441852, + "conf_total_cost_calc": 16762631.185441852, + "const_per_interest1": 8585454.452607863, "const_per_interest2": 5547524.415531235, "const_per_interest3": 0.0, "const_per_interest4": 0.0, @@ -89,7 +91,7 @@ "const_per_interest_rate3": 0.0, "const_per_interest_rate4": 0.0, "const_per_interest_rate5": 0.0, - "const_per_interest_total": 14132978.868139096, + "const_per_interest_total": 14132978.868139098, "const_per_months1": 60.0, "const_per_months2": 24.0, "const_per_months3": 0.0, @@ -106,13 +108,13 @@ "const_per_percent4": 0.0, "const_per_percent5": 0.0, "const_per_percent_total": 100.0, - "const_per_principal1": 52833565.86220223, + "const_per_principal1": 52833565.862202238, "const_per_principal2": 79250348.79330334, "const_per_principal3": 0.0, "const_per_principal4": 0.0, "const_per_principal5": 0.0, "const_per_principal_total": 132083914.65550557, - "const_per_total1": 9113790.111229884, + "const_per_total1": 9113790.111229886, "const_per_total2": 7132531.391397301, "const_per_total3": 0.0, "const_per_total4": 0.0, @@ -122,8 +124,10 @@ "const_per_upfront_rate3": 0.0, "const_per_upfront_rate4": 0.0, "const_per_upfront_rate5": 0.0, - "construction_financing_cost": 16246321.502627185, - "construction_ppi": 0.788589981, + "construction_financing_cost": 16246321.502627187, + "construction_financing_cost_calc": 16246321.502627187, + "construction_ppi": 0.790556, + "contingency_cost_calc": 8071098.99948401, "conversion_subtype": 0.0, "conversion_type": 0.0, "cost_dev_fee_percent": 3.0, @@ -134,9 +138,6 @@ "country": "-", "dT_cw_ref": 10.0, "decline_type": 0.0, - "degradation": [ - 0.0 - ], "delta_pressure_equip": 40.0, "depr_alloc_custom_percent": 0.0, "depr_alloc_macrs_15_percent": 0.0, @@ -150,7 +151,7 @@ "depr_basis_mat": [ [ 1.0, - 132083914.65550557, + 132083914.65550559, 100.0, 1.0, 0.0, @@ -204,6 +205,7 @@ "depr_itc_sta_sl_5": 0.0, "depr_stabas_method": 1.0, "design_temp": 200.0, + "design_temp_calc": 200.0, "dispatch_data_filename": "", "dispatch_factors_ts": [ 0.7, @@ -9606,13 +9608,14 @@ 1.0, 1.0 ], - "drilling_ppi": 0.319286373, + "drilling_ppi": 0.319, "drilling_success_rate": 76.0, "dscr_reserve_months": 6.0, "dt_prod_well": 0.0, "elev": 82.0, "enable_interconnection_limit": 0.0, - "engineering_ppi": 0.77985529, + "engineering_ppi": 0.77988, + "epc_total_cost_calc": 13263656.701808092, "equip1_reserve_cost": 0.0, "equip1_reserve_freq": 12.0, "equip2_reserve_cost": 0.0, @@ -9623,11 +9626,15 @@ "equip_reserve_depr_sta": 0.0, "eta_ref": 0.17, "excess_pressure_pump": 50.0, + "expl_cost_per_well_calc": 0.0, + "expl_drilling_cost_calc": 0.0, + "expl_total_cost_calc": 0.0, "exploration_wells_production": 2.0, "failed_prod_flow_ratio": 0.3, "federal_tax_rate": [ 21.0 ], + "field_gathering_num_wells_calc": 8.227676296441534, "file_name": "blythe_ca_33.617773_-114.588261_psmv3_60_tmy.csv", "flip_target_percent": 15.0, "flip_target_year": 20.0, @@ -9639,6 +9646,7 @@ "gen": [ 0.0 ], + "geo_financial_model": 4.0, "geopowerblock.pwrb.condenser_type": 2.0, "geopowerblock.pwrb.model_name": "0", "geotherm.avg_reservoir_temp": 200.0, @@ -9664,14 +9672,14 @@ "geotherm.cost.drilling.amount_specified": 0.0, "geotherm.cost.drilling.calc": 1.0, "geotherm.cost.epc.fixed": 0.0, - "geotherm.cost.epc.nonfixed": 13263656.70180809, "geotherm.cost.epc.percent": 12.0, - "geotherm.cost.epc.total": 13263656.70180809, + "geotherm.cost.epc.total": 13263656.701808092, "geotherm.cost.expl_drill": 0.0, + "geotherm.cost.expl_lump_sum": 0.0, "geotherm.cost.expl_multiplier": 0.5, "geotherm.cost.expl_non_drill": 750000.0, "geotherm.cost.expl_num_wells": 1.0, - "geotherm.cost.expl_per_well": 1746107.415150193, + "geotherm.cost.expl_per_well": 0.0, "geotherm.cost.expl_total": 0.0, "geotherm.cost.indirect.amount_specified": 0.0, "geotherm.cost.indirect.calc": 1.0, @@ -9684,8 +9692,7 @@ "geotherm.cost.inj_prod_well_ratio": 0.75, "geotherm.cost.inj_pump_cost_per_pump": 267769.04588283775, "geotherm.cost.inj_wells_drilled": 3.4980641974382657, - "geotherm.cost.installed_per_capacity": 4402.797155183511, - "geotherm.cost.num_pumps": 4.074505195242484, + "geotherm.cost.installed_per_capacity": 4402.797155183512, "geotherm.cost.other_per_pump": 10000.0, "geotherm.cost.plant": 100000.0, "geotherm.cost.plant_auto_estimate": 0.0, @@ -9693,15 +9700,14 @@ "geotherm.cost.plant_per_kW": 1139.3444299661827, "geotherm.cost.plant_per_kW.bak": 0.0, "geotherm.cost.plant_per_kW_input": 1800.0, - "geotherm.cost.plant_size": 32813.60319442342, + "geotherm.cost.plant_size": 26069.215350902592, "geotherm.cost.plant_total": 59064485.74996216, "geotherm.cost.plant_total.amount": 59064485.74996216, "geotherm.cost.plant_total.amount_specified": 0.0, "geotherm.cost.plant_total.calc": 1.0, "geotherm.cost.plm.fixed": 0.0, - "geotherm.cost.plm.nonfixed": 3868566.5380273598, "geotherm.cost.plm.percent": 3.5, - "geotherm.cost.plm.total": 3868566.5380273598, + "geotherm.cost.plm.total": 3868566.5380273608, "geotherm.cost.prod_cost_curve": 0.0, "geotherm.cost.prod_cost_curve_welldiam": 0.0, "geotherm.cost.prod_cost_curve_welltype": 0.0, @@ -9744,7 +9750,6 @@ "geotherm.cost.surf_num_wells": 8.227676296441534, "geotherm.cost.surf_per_well": 252335.1804352219, "geotherm.cost.surf_total": 2076132.1828251726, - "geotherm.cost.total_installed_millions": 132.08391465550558, "geotherm.cost.total_surface_equipment_cost": 2304639.4651651426, "geotherm.default_input": 0.0, "geotherm.delta_pressure_reservoir": 349.21180799999999, @@ -9767,8 +9772,6 @@ "geotherm.resource_type": 0.0, "geotherm.resource_type_name": "0", "geotherm.temp_gradient": 0.0, - "geotherm.total_flow_gpm": 7112.863719334803, - "geotherm.total_flow_kg_per_s": 448.1955714766732, "geothermal_analysis_period": 25.0, "grid_curtailment": [ 1e38, @@ -18533,7 +18536,9 @@ 1e38 ], "grid_interconnection_limit_kwac": 100000.0, - "gross_output": 32.81360319442342, + "gross_cost_output_calc": 26069.215350902592, + "gross_output_calc": 32.81360319442342, + "gross_output_ui": 32.81360319442342, "hc_ctl1": 0.0, "hc_ctl2": 0.0, "hc_ctl3": 0.0, @@ -18544,7 +18549,7 @@ "hc_ctl8": 0.0, "hc_ctl9": 0.0, "hr_pl_nlev": 8.0, - "hx_ppi": 0.89055794, + "hx_ppi": 0.89067, "hybrid_dispatch_schedule": "111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111", "ibi_fed_amount": 0.0, "ibi_fed_amount_deprbas_fed": 0.0, @@ -18595,17 +18600,27 @@ "in_location_options": 0.0, "in_nsrdb_options": 0.0, "in_time_step": 0.0, + "indirect_cost_calc": 21553442.14043815, "indirect_pump_cost": 418532.13261414787, + "indirect_pump_cost_calc": 418532.13261414787, "inflation_rate": 2.5, "inj_num_pumps": 1.0, + "inj_num_pumps_calc": 1.0, "inj_prod_well_distance": 1500.0, "inj_pump_cost": 228507.28233996986, + "inj_pump_cost_calc": 228507.28233996986, + "inj_pump_cost_per_pump_calc": 267769.04588283775, "inj_pump_hp": 783.8610732526882, + "inj_pump_hp_calc": 783.8610732526882, + "inj_total_cost_calc": 12215991.667636728, + "inj_well_cost_calc": 3492214.830300386, "inj_well_diam": 12.25, "injectivity_index": 3000.0, + "installed_cost_per_kW_calc": 4402.797155183512, "insurance_rate": 0.5, "is_advanced": 0.0, - "itc_basis_cost_capex_fed": 132083914.65550557, + "is_success_auto_exec": 1.0, + "itc_basis_cost_capex_fed": 132083914.65550559, "itc_basis_cost_capex_sta": 0.0, "itc_basis_cost_percent_fed": 100.0, "itc_basis_cost_percent_sta": 0.0, @@ -18639,7 +18654,7 @@ "itc_sta_percent_maxvalue": [ 1e38 ], - "lat": 33.61, + "lat": 33.61000061035156, "lib_dispatch_factor1": 1.0, "lib_dispatch_factor2": 1.0, "lib_dispatch_factor3": 1.0, @@ -19279,7 +19294,7 @@ ], "library_folder_list": "x", "library_paths": "\"\"", - "lon": -114.58, + "lon": -114.58000183105469, "mera_cost1": 0.0, "mera_cost2": 0.0, "mera_cost3": 0.0, @@ -19290,13 +19305,20 @@ "months_receivables_reserve": 0.0, "months_working_reserve": 6.0, "nameplate": 30000.0, + "net_plant_output_calc": 30.000000000000055, "nominal_discount_rate": 9.060000000000003, "non_itc_basis_depreciation_allocation": 0.0, "non_itc_basis_percent_depr": 0.0, + "num_confirm_wells_to_production_calc": 2.0, "num_fractures": 6.0, "num_wells": 3.0, + "num_wells_calc": 4.074505195242484, "num_wells_getem": 4.074505195242484, "num_wells_getem_inj": 2.6585287900530818, + "num_wells_getem_inj_calc": 2.6585287900530818, + "num_wells_getem_inj_drilled_calc": 3.4980641974382657, + "num_wells_getem_prod_drilled_calc": 2.729612099003268, + "num_wells_getem_prod_inj_sum_calc": 6.227676296441533, "om_capacity": [ 175.0 ], @@ -19342,7 +19364,10 @@ "pbi_uti_tax_fed": 1.0, "pbi_uti_tax_sta": 1.0, "pbi_uti_term": 0.0, + "piping_cost_per_well_calc": 252335.1804352219, + "plant_brine_eff_calc": 9.224654672876282, "plant_efficiency_input": 80.0, + "plm_total_cost_calc": 3868566.5380273608, "ppa_escalation": 1.0, "ppa_multiplier_model": 0.0, "ppa_price_input": [ @@ -19350,12 +19375,17 @@ ], "ppa_soln_mode": 1.0, "ppi_base_year": 0.0, - "process_equip_ppi": 0.884018929, + "process_equip_ppi": 0.884044, + "prod_inj_total_cost_calc": 21898383.520743308, "prod_pump_cost": 764596.1740052729, + "prod_pump_cost_calc": 764596.1740052729, + "prod_pump_cost_per_well_calc": 187653.74870500563, + "prod_total_cost_calc": 9532391.853106579, "prod_well_choice": 0.0, + "prod_well_cost_calc": 3492214.830300386, "prop_tax_assessed_decline": 0.0, "prop_tax_cost_assessed_percent": 100.0, - "property_assessed_value": 132083914.65550557, + "property_assessed_value": 132083914.65550559, "property_tax_rate": 1.0, "ptc_fed_amount": [ 0.0 @@ -19368,17 +19398,26 @@ "ptc_sta_escal": 0.0, "ptc_sta_term": 0.0, "pump_casing_total_cost": 37532200.0, + "pump_cost_install_calc": 17929.850444600725, "pump_depth": 1123.1203058328284, + "pump_depth_ft_calc": 1123.1203058328284, "pump_efficiency": 67.5, - "pump_ppi": 0.853374525, + "pump_only_cost_calc": 151362.5378483016, + "pump_ppi": 0.853394, "pump_size_hp": 733.6462176201694, + "pump_size_hp_calc": 733.6462176201694, + "pump_watthr_per_lb_calc": 0.7909682365960984, "pump_work": 2.8136031944233679, + "pump_work_calc": 2.8136031944233679, "pump_work_watthr_lb": 0.7909682365960984, "pumpwork_inj": 0.1643234090169439, + "pumpwork_inj_calc": 0.1643234090169439, "pumpwork_prod": 0.6266448275791545, + "pumpwork_prod_calc": 0.6266448275791545, "q_sby_frac": 0.2, "real_discount_rate": 6.4, "reserves_interest": 1.75, + "reservoir_avg_temp_calc": 200.0, "reservoir_height": 100.0, "reservoir_model_inputs": [ [ @@ -19854,6 +19893,7 @@ ], "reservoir_model_inputs_shown": 0.0, "reservoir_permeability": 0.05, + "reservoir_pressure_calc": 349.21180799999999, "reservoir_pressure_change": 2500.0, "reservoir_pressure_change_type": 0.0, "reservoir_pressure_change_type_old_setting": 0.0, @@ -19866,6 +19906,7 @@ "rock_specific_heat": 950.0, "rock_thermal_conductivity": 3.0, "sale_leaseback_message": "", + "sales_tax_cost_calc": 4421218.900602697, "sales_tax_rate": 5.0, "salvage_percentage": 0.0, "salvage_value": 0.0, @@ -19884,8 +19925,8 @@ "sponsor_operating_margin": 20.0, "sponsor_operating_margin_amount": 656272.0638884684, "sponsor_operating_margin_escalation": 2.0, - "start_day_of_year": 0.0, - "start_day_of_year_tod_ui": 0.0, + "start_day_of_year": 3.335046e-317, + "start_day_of_year_tod_ui": 3.335046e-317, "startup_frac": 0.2, "startup_time": 1.0, "state": "-", @@ -19893,30 +19934,44 @@ 7.0 ], "station_id": "258971", - "steel_ppi": 1.129319793, + "steel_ppi": 1.12883, "step": 3600.0, + "stim_cost_per_well_calc": 399107.96625, "stim_success_rate": 0.0, + "stim_total_cost_calc": 1396105.2876515247, "stimulation_type": 0.0, "subsurface_water_loss": 2.0, + "sum_prod_inj_total_cost_calc": 21748383.520743308, "system_capacity": 32813.60319442342, - "system_itc_basis_cost": 132083914.65550557, + "system_capacity_calc": 32813.60319442342, + "system_itc_basis_cost": 132083914.65550559, "system_itc_basis_cost_fed_include": 1.0, "system_itc_basis_cost_sta_include": 0.0, "system_itc_basis_percent": 100.0, - "system_recapitalization_cost": 41580250.34535558, + "system_recapitalization_cost_calc": 41580250.34535558, "system_use_lifetime_output": 1.0, - "system_use_recapitalization": 1.0, "tax_investor_required_lease_reserve": 6.0, "temp_decline_max": 30.0, "temp_decline_rate": 0.5, "tod_library": "Uniform Dispatch", + "total_capital_cost_calc": 102459373.51558341, "total_direct_cost": 110530472.51506743, - "total_getem_om_cost": 3828237.971647888, - "total_indirect_cost": 21553442.140438148, - "total_installed_cost": 132083914.65550557, - "turbine_ppi": 0.882749597, + "total_direct_cost_calc": 110530472.51506743, + "total_drilling_cost_calc": 39907119.993836689, + "total_drilling_cost_used_calc": 39907119.993836689, + "total_gathering_cost_calc": 2076132.1828251726, + "total_getem_om_cost": 42468700.0, + "total_getem_om_cost_calc": 3360484.412068537, + "total_indirect_cost": 21553442.14043815, + "total_installed_cost": 132083914.65550559, + "total_installed_cost_calc": 132083914.65550559, + "total_plant_cost_calc": 59064485.74996216, + "total_plant_cost_used_calc": 59064485.74996216, + "total_pump_cost_calc": 993103.4563452428, + "total_pump_gathering_cost_used_calc": 3487767.771784563, + "total_surface_equipment_cost_calc": 2304639.4651651426, + "turbine_ppi": 0.88285, "tz": -8.0, - "ui_calculations_only": 0.0, "ui_depr_alloc_custom_percent": 0.0, "ui_depr_alloc_macrs_15_percent": 0.0, "ui_depr_alloc_macrs_5_percent": 0.0, diff --git a/deploy/runtime/defaults/Geothermal Power_Single Owner.json b/deploy/runtime/defaults/Geothermal Power_Single Owner.json index 74fede156b..2d09e64d30 100644 --- a/deploy/runtime/defaults/Geothermal Power_Single Owner.json +++ b/deploy/runtime/defaults/Geothermal Power_Single Owner.json @@ -1,6 +1,5 @@ { "CT": 3.0, - "HTF": 3.0, "P_boil": 2.0, "P_cond_min": 1.25, "P_cond_ratio": 1.0028, @@ -35,24 +34,25 @@ "analysis_period_warning": "No messages.", "analysis_type": 0.0, "annual_albedo": NaN, - "annual_beam": 4.11599, - "annual_csky_beam": 0.0, - "annual_csky_diffuse": 0.0, - "annual_csky_global": 0.0, - "annual_diffuse": 1.66759, - "annual_global": 3.84577, - "annual_precipitation": 0.0, + "annual_beam": 4.115986301369863, + "annual_csky_beam": NaN, + "annual_csky_diffuse": NaN, + "annual_csky_global": NaN, + "annual_diffuse": 1.6675863013698629, + "annual_global": 3.845767123287671, + "annual_precipitation": NaN, "annual_snow": 23.0, - "annual_tdry": 5.47658, - "annual_twet": 2.88032, - "annual_wspd": 5.37725, - "baseline_cost": 2614.277065794077, + "annual_tdry": 5.476575352050807, + "annual_twet": 2.8803192861820468, + "annual_wspd": 5.377248799766852, + "baseline_cost_calc": 2614.277065794077, "batt_itc_basis_cost": 0.0, "batt_itc_basis_cost_fed_include": 0.0, "batt_itc_basis_cost_sta_include": 0.0, "batt_itc_basis_percent": 0.0, "batt_salvage_percentage": 0.0, "batt_salvage_value": 0.0, + "bottom_hole_pressure_calc": 2362.8117253807779, "casing_size": 9.625, "cbi_fed_amount": 0.0, "cbi_fed_deprbas_fed": 0.0, @@ -79,6 +79,8 @@ "cbi_uti_tax_fed": 1.0, "cbi_uti_tax_sta": 1.0, "city": "Fargo", + "conf_drilling_cost_calc": 12571973.389081389, + "conf_total_cost_calc": 12571973.389081389, "const_per_interest1": 15567465.752603136, "const_per_interest2": 10058977.870912796, "const_per_interest3": 0.0, @@ -123,7 +125,9 @@ "const_per_upfront_rate4": 0.0, "const_per_upfront_rate5": 0.0, "construction_financing_cost": 29458435.193387476, - "construction_ppi": 1.858333333, + "construction_financing_cost_calc": 29458435.19338747, + "construction_ppi": 1.858, + "contingency_cost_calc": 14999543.644159336, "conversion_subtype": 0.0, "conversion_type": 0.0, "cost_debt_closing": 0.0, @@ -145,9 +149,6 @@ "debt_option": 1.0, "debt_percent": 50.0, "decline_type": 0.0, - "degradation": [ - 0.0 - ], "delta_pressure_equip": 40.0, "depr_alloc_custom_percent": 0.0, "depr_alloc_macrs_15_percent": 0.0, @@ -215,6 +216,7 @@ "depr_itc_sta_sl_5": 0.0, "depr_stabas_method": 1.0, "design_temp": 200.0, + "design_temp_calc": 200.0, "dispatch_data_filename": "", "dispatch_factors_ts": [ 0.7, @@ -9617,7 +9619,7 @@ 1.0, 1.0 ], - "drilling_ppi": 1.154758536, + "drilling_ppi": 1.155, "drilling_success_rate": 76.0, "dscr": 1.45, "dscr_limit_debt_fraction": 0.0, @@ -9632,7 +9634,8 @@ "energy_revenue_ret": [ 100.0 ], - "engineering_ppi": 1.780739467, + "engineering_ppi": 1.781, + "epc_total_cost_calc": 24050156.2962649, "equip1_reserve_cost": 0.0, "equip1_reserve_freq": 12.0, "equip2_reserve_cost": 0.0, @@ -9643,11 +9646,15 @@ "equip_reserve_depr_sta": 0.0, "eta_ref": 0.17, "excess_pressure_pump": 50.0, + "expl_cost_per_well_calc": 0.0, + "expl_drilling_cost_calc": 0.0, + "expl_total_cost_calc": 0.0, "exploration_wells_production": 1.5, "failed_prod_flow_ratio": 0.3, "federal_tax_rate": [ 21.0 ], + "field_gathering_num_wells_calc": 11.145419661323653, "file_name": "fargo_nd_46.9_-96.8_mts1_60_tmy.csv", "flip_target_percent": 15.0, "flip_target_year": 20.0, @@ -9659,6 +9666,7 @@ "gen": [ 0.0 ], + "geo_financial_model": 1.0, "geopowerblock.pwrb.condenser_type": 2.0, "geopowerblock.pwrb.model_name": "0", "geotherm.avg_reservoir_temp": 200.0, @@ -9684,14 +9692,14 @@ "geotherm.cost.drilling.amount_specified": 0.0, "geotherm.cost.drilling.calc": 1.0, "geotherm.cost.epc.fixed": 0.0, - "geotherm.cost.epc.nonfixed": 24050156.2962649, "geotherm.cost.epc.percent": 12.0, "geotherm.cost.epc.total": 24050156.2962649, "geotherm.cost.expl_drill": 0.0, + "geotherm.cost.expl_lump_sum": 0.0, "geotherm.cost.expl_multiplier": 0.5, "geotherm.cost.expl_non_drill": 750000.0, "geotherm.cost.expl_num_wells": 1.0, - "geotherm.cost.expl_per_well": 1746107.415150193, + "geotherm.cost.expl_per_well": 0.0, "geotherm.cost.expl_total": 0.0, "geotherm.cost.indirect.amount_specified": 0.0, "geotherm.cost.indirect.calc": 1.0, @@ -9705,7 +9713,6 @@ "geotherm.cost.inj_pump_cost_per_pump": 374563.0804755154, "geotherm.cost.inj_wells_drilled": 4.304371629526051, "geotherm.cost.installed_per_capacity": 5987.48682792427, - "geotherm.cost.num_pumps": 5.559196504166177, "geotherm.cost.other_per_pump": 10000.0, "geotherm.cost.plant": 100000.0, "geotherm.cost.plant_auto_estimate": 1.0, @@ -9713,15 +9720,14 @@ "geotherm.cost.plant_per_kW": 2614.277065794077, "geotherm.cost.plant_per_kW.bak": 0.0, "geotherm.cost.plant_per_kW_input": 1800.0, - "geotherm.cost.plant_size": 45106.1880822694, + "geotherm.cost.plant_size": 35568.463874904475, "geotherm.cost.plant_total": 117920073.028871, "geotherm.cost.plant_total.amount": 117920073.028871, "geotherm.cost.plant_total.amount_specified": 0.0, "geotherm.cost.plant_total.calc": 1.0, "geotherm.cost.plm.fixed": 0.0, - "geotherm.cost.plm.nonfixed": 7014628.919743929, "geotherm.cost.plm.percent": 3.5, - "geotherm.cost.plm.total": 7014628.919743929, + "geotherm.cost.plm.total": 7014628.91974393, "geotherm.cost.prod_cost_curve": 0.0, "geotherm.cost.prod_cost_curve_welldiam": 0.0, "geotherm.cost.prod_cost_curve_welltype": 0.0, @@ -9764,7 +9770,6 @@ "geotherm.cost.surf_num_wells": 11.145419661323653, "geotherm.cost.surf_per_well": 758559.9467789914, "geotherm.cost.surf_total": 8454468.945123194, - "geotherm.cost.total_installed_millions": 239.4994731169713, "geotherm.cost.total_surface_equipment_cost": 9617861.873080146, "geotherm.default_input": 0.0, "geotherm.delta_pressure_reservoir": 349.21180799999999, @@ -9787,8 +9792,6 @@ "geotherm.resource_type": 0.0, "geotherm.resource_type_name": "0", "geotherm.temp_gradient": 0.0, - "geotherm.total_flow_gpm": 9704.689337322896, - "geotherm.total_flow_kg_per_s": 611.5116154582795, "geothermal_analysis_period": 30.0, "grid_curtailment": [ 1e38, @@ -18557,7 +18560,9 @@ ], "grid_curtailment_price_esc": 0.0, "grid_interconnection_limit_kwac": 100000.0, - "gross_output": 45.1061880822694, + "gross_cost_output_calc": 35568.463874904475, + "gross_output_calc": 45.1061880822694, + "gross_output_ui": 45.1061880822694, "hc_ctl1": 0.0, "hc_ctl2": 0.0, "hc_ctl3": 0.0, @@ -18568,7 +18573,7 @@ "hc_ctl8": 0.0, "hc_ctl9": 0.0, "hr_pl_nlev": 8.0, - "hx_ppi": 2.272575844, + "hx_ppi": 2.273, "hybrid_dispatch_schedule": "111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111", "ibi_fed_amount": 0.0, "ibi_fed_amount_deprbas_fed": 0.0, @@ -18619,16 +18624,26 @@ "in_location_options": 0.0, "in_nsrdb_options": 0.0, "in_time_step": 0.0, + "indirect_cost_calc": 39081503.98143046, "indirect_pump_cost": 1594830.3206401999, + "indirect_pump_cost_calc": 1594830.3206401999, "inflation_rate": 2.5, "inj_num_pumps": 2.0, + "inj_num_pumps_calc": 2.0, "inj_prod_well_distance": 1500.0, "inj_pump_cost": 1163392.9279569509, + "inj_pump_cost_calc": 1163392.9279569509, + "inj_pump_cost_per_pump_calc": 374563.0804755154, "inj_pump_hp": 2769.0304554875876, + "inj_pump_hp_calc": 2769.0304554875876, + "inj_total_cost_calc": 16770901.903797878, + "inj_well_cost_calc": 3896248.592653349, "inj_well_diam": 12.25, "injectivity_index": 3000.0, + "installed_cost_per_kW_calc": 5987.48682792427, "insurance_rate": 0.5, "is_advanced": 0.0, + "is_success_auto_exec": 1.0, "itc_basis_cost_capex_fed": 239499473.1169713, "itc_basis_cost_capex_sta": 0.0, "itc_basis_cost_percent_fed": 100.0, @@ -18663,7 +18678,7 @@ "itc_sta_percent_maxvalue": [ 1e38 ], - "lat": 46.9, + "lat": 46.900001525878909, "lib_dispatch_factor1": 1.0, "lib_dispatch_factor2": 1.0, "lib_dispatch_factor3": 1.0, @@ -19304,7 +19319,7 @@ "library_folder_list": "x", "library_paths": "\"\"", "loan_moratorium": 0.0, - "lon": -96.8, + "lon": -96.80000305175781, "mera_cost1": 0.0, "mera_cost2": 0.0, "mera_cost3": 0.0, @@ -19315,6 +19330,7 @@ "months_receivables_reserve": 0.0, "months_working_reserve": 6.0, "nameplate": 40000.0, + "net_plant_output_calc": 40.000000000000088, "nominal_discount_rate": 9.060000000000003, "non_energy_expenses": [ 0.0 @@ -19335,10 +19351,16 @@ ], "non_itc_basis_depreciation_allocation": 0.0, "non_itc_basis_percent_depr": 0.0, + "num_confirm_wells_to_production_calc": 1.5, "num_fractures": 6.0, "num_wells": 3.0, + "num_wells_calc": 5.559196504166177, "num_wells_getem": 5.559196504166177, "num_wells_getem_inj": 3.271322438439798, + "num_wells_getem_inj_calc": 3.271322438439798, + "num_wells_getem_inj_drilled_calc": 4.304371629526051, + "num_wells_getem_prod_drilled_calc": 5.341048031797602, + "num_wells_getem_prod_inj_sum_calc": 9.645419661323653, "om_capacity": [ 0.0 ], @@ -19385,7 +19407,10 @@ "pbi_uti_tax_fed": 1.0, "pbi_uti_tax_sta": 1.0, "pbi_uti_term": 0.0, + "piping_cost_per_well_calc": 758559.9467789914, + "plant_brine_eff_calc": 9.293839582922852, "plant_efficiency_input": 80.6, + "plm_total_cost_calc": 7014628.91974393, "ppa_escalation": 1.0, "ppa_multiplier_model": 0.0, "ppa_price_input": [ @@ -19393,9 +19418,14 @@ ], "ppa_soln_mode": 1.0, "ppi_base_year": 27.0, - "process_equip_ppi": 2.184450409, + "process_equip_ppi": 2.184, + "prod_inj_total_cost_calc": 35572989.04978815, "prod_pump_cost": 2077560.4782813136, + "prod_pump_cost_calc": 2077560.4782813136, + "prod_pump_cost_per_well_calc": 373715.9635793314, + "prod_total_cost_calc": 18652087.14599027, "prod_well_choice": 0.0, + "prod_well_cost_calc": 3492214.830300386, "prop_tax_assessed_decline": 0.0, "prop_tax_cost_assessed_percent": 100.0, "property_assessed_value": 239499473.1169713, @@ -19411,17 +19441,26 @@ "ptc_sta_escal": 0.0, "ptc_sta_term": 0.0, "pump_casing_total_cost": 310559.0, + "pump_cost_install_calc": 64846.63800576945, "pump_depth": 1123.1203058328284, + "pump_depth_ft_calc": 1123.1203058328284, "pump_efficiency": 67.5, + "pump_only_cost_calc": 275454.69707853349, "pump_ppi": 1.553, "pump_size_hp": 733.6462176201694, + "pump_size_hp_calc": 733.6462176201694, + "pump_watthr_per_lb_calc": 1.0520971719066164, "pump_work": 5.1061880822693139, + "pump_work_calc": 5.1061880822693139, "pump_work_watthr_lb": 1.0520971719066164, "pumpwork_inj": 0.4254523443274618, + "pumpwork_inj_calc": 0.4254523443274618, "pumpwork_prod": 0.6266448275791545, + "pumpwork_prod_calc": 0.6266448275791545, "q_sby_frac": 0.2, "real_discount_rate": 6.4, "reserves_interest": 1.75, + "reservoir_avg_temp_calc": 200.0, "reservoir_height": 100.0, "reservoir_model_inputs": [ [ @@ -19897,6 +19936,7 @@ ], "reservoir_model_inputs_shown": 0.0, "reservoir_permeability": 0.05, + "reservoir_pressure_calc": 349.21180799999999, "reservoir_pressure_change": 2500.0, "reservoir_pressure_change_type": 0.0, "reservoir_pressure_change_type_old_setting": 0.0, @@ -19911,6 +19951,7 @@ "rock_density": 2600.0, "rock_specific_heat": 950.0, "rock_thermal_conductivity": 3.0, + "sales_tax_cost_calc": 8016718.765421634, "sales_tax_rate": 5.0, "salvage_percentage": 0.0, "salvage_value": 0.0, @@ -19927,8 +19968,8 @@ "solution_mode_message": "", "specified_pump_work_amount": 0.0, "specify_pump_work": 0.0, - "start_day_of_year": 0.0, - "start_day_of_year_tod_ui": 0.0, + "start_day_of_year": 3.335046e-317, + "start_day_of_year_tod_ui": 3.335046e-317, "startup_frac": 0.2, "startup_time": 1.0, "state": "ND", @@ -19936,31 +19977,45 @@ 7.0 ], "station_id": "14914", - "steel_ppi": 3.334864154, + "steel_ppi": 3.335, "step": 3600.0, + "stim_cost_per_well_calc": 1443448.17, "stim_success_rate": 0.0, + "stim_total_cost_calc": 6213137.351639295, "stimulation_type": 0.0, "subsurface_water_loss": 2.0, + "sum_prod_inj_total_cost_calc": 35422989.04978815, "system_capacity": 45106.1880822694, + "system_capacity_calc": 45106.1880822694, "system_itc_basis_cost": 239499473.1169713, "system_itc_basis_cost_fed_include": 1.0, "system_itc_basis_cost_sta_include": 0.0, "system_itc_basis_percent": 100.0, - "system_recapitalization_cost": 59690384.790231, + "system_recapitalization_cost_calc": 59690384.790231, "system_use_lifetime_output": 1.0, - "system_use_recapitalization": 1.0, "temp_decline_max": 30.0, "temp_decline_rate": 0.5, "term_int_rate": 7.0, "term_tenor": 18.0, "tod_library": "Uniform Dispatch", + "total_capital_cost_calc": 185418425.4913815, "total_direct_cost": 200417969.13554085, - "total_getem_om_cost": 7932692.996058329, + "total_direct_cost_calc": 200417969.13554085, + "total_drilling_cost_calc": 54208099.79050883, + "total_drilling_cost_used_calc": 54208099.79050883, + "total_gathering_cost_calc": 8454468.945123194, + "total_getem_om_cost": 8117304.259737534, + "total_getem_om_cost_calc": 7481721.908901615, "total_indirect_cost": 39081503.98143046, "total_installed_cost": 239499473.1169713, - "turbine_ppi": 1.540966184, + "total_installed_cost_calc": 239499473.1169713, + "total_plant_cost_calc": 117920073.028871, + "total_plant_cost_used_calc": 117920073.028871, + "total_pump_cost_calc": 3240953.4062382646, + "total_pump_gathering_cost_used_calc": 13290252.672001657, + "total_surface_equipment_cost_calc": 9617861.873080146, + "turbine_ppi": 1.541, "tz": -6.0, - "ui_calculations_only": 0.0, "ui_depr_alloc_custom_percent": 0.0, "ui_depr_alloc_macrs_15_percent": 0.0, "ui_depr_alloc_macrs_5_percent": 0.0, diff --git a/deploy/runtime/startup.lk b/deploy/runtime/startup.lk index 3348f7085f..72e081c6d1 100644 --- a/deploy/runtime/startup.lk +++ b/deploy/runtime/startup.lk @@ -858,13 +858,20 @@ function setup_csp_empirical_trough_pages() setup_grid_limits_page(); } -function setup_geothermal_power_pages() +function setup_geothermal_power_pages(is_fin_model) { addpage( [[ 'Solar Resource Download', 'Solar Resource Library', 'Solar Resource Information' ]], { 'sidebar'='Ambient Conditions', 'help'='geothermal/geo_ambient_conditions' } ); addpage( [[ 'Geothermal Resource', {'name'='Geothermal Reservoir Input', 'caption'='Geothermal Reservoir Model Input Table', 'collapsible'=true, 'collapsible_var'='reservoir_model_inputs_shown'} ]], { 'sidebar'='Geothermal Resource', 'help'='geothermal/geo_geothermal_resource' } ); - addpage( [[ 'Geothermal Plant and Equipment' ]], { 'sidebar'='Plant and Equipment', 'help'='geothermal/geo_plant_equipment' } ); + if(is_fin_model) + { + addpage( [[ 'Geothermal System Design', 'Geothermal Plant and Equipment' ]], { 'sidebar'='Plant and Equipment', 'help'='geothermal/geo_plant_equipment' } ); + } + else + { + addpage( [[ 'Geothermal System Design No Fin', 'Geothermal Plant and Equipment' ]], { 'sidebar'='Plant and Equipment', 'help'='geothermal/geo_plant_equipment' } ); + } addpage( [[ 'Geothermal Power Block' ]], { 'sidebar'='Power Block', 'help'='geothermal/geo_power_block' } ); setup_grid_limits_page(); } @@ -1652,7 +1659,7 @@ addpage( [[ 'Thermal Rate' ]], setconfig( 'Geothermal Power', 'Leveraged Partnership Flip' ); setmodules( ['geothermal', 'grid', 'levpartflip']); -setup_geothermal_power_pages(); +setup_geothermal_power_pages(true); addpage( [[ 'Geothermal Costs' ]], { 'sidebar'='Installation Costs', 'help'='installation-costs/cc_geothermal' } ); addpage( [[ 'Operating Costs', 'Geothermal OM Costs' ]], {'sidebar' = 'Operating Costs', 'help'='operating-costs/oc_operating'} ); setup_leveraged_partnership_flip_pages(); @@ -1660,7 +1667,7 @@ setup_leveraged_partnership_flip_pages(); setconfig( 'Geothermal Power', 'All Equity Partnership Flip' ); setmodules( ['geothermal', 'grid', 'equpartflip']); -setup_geothermal_power_pages(); +setup_geothermal_power_pages(true); addpage( [[ 'Geothermal Costs' ]], { 'sidebar'='Installation Costs', 'help'='installation-costs/cc_geothermal' } ); addpage( [[ 'Operating Costs', 'Geothermal OM Costs' ]], {'sidebar' = 'Operating Costs', 'help'='operating-costs/oc_operating'} ); setup_all_equity_partnership_flip_pages(); @@ -1668,7 +1675,7 @@ setup_all_equity_partnership_flip_pages(); setconfig( 'Geothermal Power', 'Sale Leaseback' ); setmodules( ['geothermal', 'grid', 'saleleaseback']); -setup_geothermal_power_pages(); +setup_geothermal_power_pages(true); addpage( [[ 'Geothermal Costs' ]], { 'sidebar'='Installation Costs', 'help'='installation-costs/cc_geothermal' } ); addpage( [[ 'Operating Costs', 'Geothermal OM Costs' ]], {'sidebar' = 'Operating Costs', 'help'='operating-costs/oc_operating'} ); setup_sale_leaseback_pages(); @@ -1676,7 +1683,7 @@ setup_sale_leaseback_pages(); setconfig( 'Geothermal Power', 'Single Owner' ); setmodules( ['geothermal', 'grid', 'singleowner']); -setup_geothermal_power_pages(); +setup_geothermal_power_pages(true); addpage( [[ 'Geothermal Costs' ]], { 'sidebar'='Installation Costs', 'help'='installation-costs/cc_geothermal' } ); addpage( [[ 'Operating Costs', 'Geothermal OM Costs' ]], {'sidebar' = 'Operating Costs', 'help'='operating-costs/oc_operating'} ); setup_single_owner_pages(); @@ -1684,21 +1691,21 @@ setup_single_owner_pages(); setconfig( 'Geothermal Power', 'Merchant Plant' ); setmodules( ['geothermal', 'grid', 'merchantplant']); -setup_geothermal_power_pages(); +setup_geothermal_power_pages(true); addpage( [[ 'Geothermal Costs' ]], { 'sidebar'='Installation Costs', 'help'='installation-costs/cc_geothermal' } ); addpage( [[ 'Operating Costs', 'Geothermal OM Costs' ]], {'sidebar' = 'Operating Costs', 'help'='operating-costs/oc_operating'} ); setup_merchant_plant_pages(); setconfig( 'Geothermal Power', 'LCOE Calculator' ); -setmodules( ['geothermal', 'grid', 'lcoefcr']); -setup_geothermal_power_pages(); -addpage( [[ 'Geothermal Costs' ]], { 'sidebar'='Installation Costs', 'help'='installation-costs/cc_geothermal' } ); -addpage( [[ 'Financial LCOE Calc with Capex Page']], { 'sidebar'='Financial Parameters', 'help'='financial-parameters/fin_lcoefcr'} ); +setmodules( ['geothermal', 'grid', 'lcoefcr_electricity']); +setup_geothermal_power_pages(true); +addpage( [[ 'Geothermal Costs', 'Financial Construction Financing Input' ]], { 'sidebar'='Installation Costs', 'help'='installation-costs/cc_geothermal' } ); +addpage( [[ 'Financial LCOE Calc with Costs']], { 'sidebar'='Financial Parameters', 'help'='financial-parameters/fin_lcoefcr'} ); setconfig( 'Geothermal Power', 'None' ); -setmodules( ['geothermal', 'grid',]); -setup_geothermal_power_pages(); +setmodules( ['geothermal_no_fin', 'grid',]); +setup_geothermal_power_pages(false); addpage( [['Geothermal Drilling' ]], { 'sidebar'='Well Drilling', 'help'='installation-costs/cc_geothermal' } ); // Generic System ////////////////////////////////////////////////////////////// diff --git a/deploy/runtime/ui/Financial Construction Financing Input.json b/deploy/runtime/ui/Financial Construction Financing Input.json new file mode 100644 index 0000000000..31a59ee2e3 --- /dev/null +++ b/deploy/runtime/ui/Financial Construction Financing Input.json @@ -0,0 +1,306 @@ +{ + "Name": "Financial Construction Financing Input", + "Width": 473.0, + "Height": 8.0, + "FormObjects": {}, + "VarDatabase": { + "analysis_period": { + "Version": 4.0, + "Type": 1.0, + "Label": "", + "Units": "", + "Group": "", + "IndexLabels": "", + "Flags": 8.0, + "DefaultValue": 1.0, + "UIObject": "Default", + "sscVariableName": "", + "sscVariableValue": "" + }, + "const_per_interest_rate1": { + "Version": 4.0, + "Type": 1.0, + "Label": "", + "Units": "", + "Group": "", + "IndexLabels": "", + "Flags": 0.0, + "DefaultValue": -999.0, + "UIObject": "Default", + "sscVariableName": "", + "sscVariableValue": "" + }, + "const_per_interest_rate2": { + "Version": 4.0, + "Type": 1.0, + "Label": "", + "Units": "", + "Group": "", + "IndexLabels": "", + "Flags": 0.0, + "DefaultValue": -999.0, + "UIObject": "Default", + "sscVariableName": "", + "sscVariableValue": "" + }, + "const_per_interest_rate3": { + "Version": 4.0, + "Type": 1.0, + "Label": "", + "Units": "", + "Group": "", + "IndexLabels": "", + "Flags": 0.0, + "DefaultValue": -999.0, + "UIObject": "Default", + "sscVariableName": "", + "sscVariableValue": "" + }, + "const_per_interest_rate4": { + "Version": 4.0, + "Type": 1.0, + "Label": "", + "Units": "", + "Group": "", + "IndexLabels": "", + "Flags": 0.0, + "DefaultValue": -999.0, + "UIObject": "Default", + "sscVariableName": "", + "sscVariableValue": "" + }, + "const_per_interest_rate5": { + "Version": 4.0, + "Type": 1.0, + "Label": "", + "Units": "", + "Group": "", + "IndexLabels": "", + "Flags": 0.0, + "DefaultValue": -999.0, + "UIObject": "Default", + "sscVariableName": "", + "sscVariableValue": "" + }, + "const_per_months1": { + "Version": 4.0, + "Type": 1.0, + "Label": "", + "Units": "", + "Group": "", + "IndexLabels": "", + "Flags": 0.0, + "DefaultValue": -999.0, + "UIObject": "Default", + "sscVariableName": "", + "sscVariableValue": "" + }, + "const_per_months2": { + "Version": 4.0, + "Type": 1.0, + "Label": "", + "Units": "", + "Group": "", + "IndexLabels": "", + "Flags": 0.0, + "DefaultValue": -999.0, + "UIObject": "Default", + "sscVariableName": "", + "sscVariableValue": "" + }, + "const_per_months3": { + "Version": 4.0, + "Type": 1.0, + "Label": "", + "Units": "", + "Group": "", + "IndexLabels": "", + "Flags": 0.0, + "DefaultValue": -999.0, + "UIObject": "Default", + "sscVariableName": "", + "sscVariableValue": "" + }, + "const_per_months4": { + "Version": 4.0, + "Type": 1.0, + "Label": "", + "Units": "", + "Group": "", + "IndexLabels": "", + "Flags": 0.0, + "DefaultValue": -999.0, + "UIObject": "Default", + "sscVariableName": "", + "sscVariableValue": "" + }, + "const_per_months5": { + "Version": 4.0, + "Type": 1.0, + "Label": "", + "Units": "", + "Group": "", + "IndexLabels": "", + "Flags": 0.0, + "DefaultValue": -999.0, + "UIObject": "Default", + "sscVariableName": "", + "sscVariableValue": "" + }, + "const_per_percent1": { + "Version": 4.0, + "Type": 1.0, + "Label": "", + "Units": "", + "Group": "", + "IndexLabels": "", + "Flags": 0.0, + "DefaultValue": -999.0, + "UIObject": "Default", + "sscVariableName": "", + "sscVariableValue": "" + }, + "const_per_percent2": { + "Version": 4.0, + "Type": 1.0, + "Label": "", + "Units": "", + "Group": "", + "IndexLabels": "", + "Flags": 0.0, + "DefaultValue": -999.0, + "UIObject": "Default", + "sscVariableName": "", + "sscVariableValue": "" + }, + "const_per_percent3": { + "Version": 4.0, + "Type": 1.0, + "Label": "", + "Units": "", + "Group": "", + "IndexLabels": "", + "Flags": 0.0, + "DefaultValue": -999.0, + "UIObject": "Default", + "sscVariableName": "", + "sscVariableValue": "" + }, + "const_per_percent4": { + "Version": 4.0, + "Type": 1.0, + "Label": "", + "Units": "", + "Group": "", + "IndexLabels": "", + "Flags": 0.0, + "DefaultValue": -999.0, + "UIObject": "Default", + "sscVariableName": "", + "sscVariableValue": "" + }, + "const_per_percent5": { + "Version": 4.0, + "Type": 1.0, + "Label": "", + "Units": "", + "Group": "", + "IndexLabels": "", + "Flags": 0.0, + "DefaultValue": -999.0, + "UIObject": "Default", + "sscVariableName": "", + "sscVariableValue": "" + }, + "const_per_upfront_rate1": { + "Version": 4.0, + "Type": 1.0, + "Label": "", + "Units": "", + "Group": "", + "IndexLabels": "", + "Flags": 0.0, + "DefaultValue": -999.0, + "UIObject": "Default", + "sscVariableName": "", + "sscVariableValue": "" + }, + "const_per_upfront_rate2": { + "Version": 4.0, + "Type": 1.0, + "Label": "", + "Units": "", + "Group": "", + "IndexLabels": "", + "Flags": 0.0, + "DefaultValue": -999.0, + "UIObject": "Default", + "sscVariableName": "", + "sscVariableValue": "" + }, + "const_per_upfront_rate3": { + "Version": 4.0, + "Type": 1.0, + "Label": "", + "Units": "", + "Group": "", + "IndexLabels": "", + "Flags": 0.0, + "DefaultValue": -999.0, + "UIObject": "Default", + "sscVariableName": "", + "sscVariableValue": "" + }, + "const_per_upfront_rate4": { + "Version": 4.0, + "Type": 1.0, + "Label": "", + "Units": "", + "Group": "", + "IndexLabels": "", + "Flags": 0.0, + "DefaultValue": -999.0, + "UIObject": "Default", + "sscVariableName": "", + "sscVariableValue": "" + }, + "const_per_upfront_rate5": { + "Version": 4.0, + "Type": 1.0, + "Label": "", + "Units": "", + "Group": "", + "IndexLabels": "", + "Flags": 0.0, + "DefaultValue": -999.0, + "UIObject": "Default", + "sscVariableName": "", + "sscVariableValue": "" + }, + "sales_tax_rate": { + "Version": 4.0, + "Type": 1.0, + "Label": "", + "Units": "", + "Group": "", + "IndexLabels": "", + "Flags": 0.0, + "DefaultValue": 0.0, + "UIObject": "Default", + "sscVariableName": "", + "sscVariableValue": "" + } + }, + "Equations": [ + "// This page provides allows the UI to use auto exec\r", + "// for geothermal with the LCOE financial model\r", + "// As of 6.8.26, the var table checks required\r", + "// these variables although they are not used\r", + "// in the LCOE model\r", + "\r", + "// 'analysis_period' requires a non-negative input\r", + "// and is reset in the geothermal cmod for\r", + "// lcoe and no financial model cases" + ], + "Callbacks": [] +} \ No newline at end of file diff --git a/deploy/runtime/ui/Financial LCOE Calc with Costs.json b/deploy/runtime/ui/Financial LCOE Calc with Costs.json index d94acefff0..2db811bad4 100644 --- a/deploy/runtime/ui/Financial LCOE Calc with Costs.json +++ b/deploy/runtime/ui/Financial LCOE Calc with Costs.json @@ -2316,8 +2316,13 @@ } }, "Equations": [ - "equations{ 'ui_system_capacity' } = define() {", - " return ${nameplate}*1.E3; ", + "equations{ 'ui_system_capacity' } = define() {\r", + "\tif(technology() == 'Geothermal Power'){\r", + "\t\treturn ${nameplate};\r", + "\t}\r", + "\telse{", + "\t\treturn ${nameplate}*1.E3; \r", + "\t}", "};", "", "equations{ 'ui_capital_cost_reference' } =define() {", diff --git a/deploy/runtime/ui/Geothermal Costs.json b/deploy/runtime/ui/Geothermal Costs.json index 57560b3829..3745112f58 100644 --- a/deploy/runtime/ui/Geothermal Costs.json +++ b/deploy/runtime/ui/Geothermal Costs.json @@ -1,7 +1,7 @@ { "Name": "Geothermal Costs", - "Width": 883.0, - "Height": 2351.0, + "Width": 905.0, + "Height": 2582.0, "FormObjects": { "GroupBox": { "Visible": 1.0, @@ -283,7 +283,7 @@ }, "Height": { "Type": 3.0, - "Integer": 102.0 + "Integer": 75.0 }, "Tool Tip": { "Type": 5.0, @@ -523,7 +523,7 @@ }, "Y": { "Type": 3.0, - "Integer": 660.0 + "Integer": 657.0 }, "Width": { "Type": 3.0, @@ -1081,7 +1081,7 @@ }, "Y": { "Type": 3.0, - "Integer": 624.0 + "Integer": 621.0 }, "Width": { "Type": 3.0, @@ -1143,7 +1143,7 @@ }, "Y": { "Type": 3.0, - "Integer": 660.0 + "Integer": 657.0 }, "Width": { "Type": 3.0, @@ -1577,7 +1577,7 @@ }, "Y": { "Type": 3.0, - "Integer": 603.0 + "Integer": 600.0 }, "Width": { "Type": 3.0, @@ -1825,7 +1825,7 @@ }, "Y": { "Type": 3.0, - "Integer": 660.0 + "Integer": 657.0 }, "Width": { "Type": 3.0, @@ -3645,6 +3645,89 @@ } } }, + "Numeric": { + "Visible": 1.0, + "ObjectProperties": { + "Name": { + "Type": 5.0, + "String": "geotherm.cost.expl_lump_sum" + }, + "X": { + "Type": 3.0, + "Integer": 99.0 + }, + "Y": { + "Type": 3.0, + "Integer": 495.0 + }, + "Width": { + "Type": 3.0, + "Integer": 90.0 + }, + "Height": { + "Type": 3.0, + "Integer": 24.0 + }, + "Tool Tip": { + "Type": 5.0, + "String": "" + }, + "Value": { + "Type": 1.0, + "Double": 0.0 + }, + "Mode": { + "Type": 3.0, + "Integer": 1.0 + }, + "Format": { + "Type": 3.0, + "Integer": 0.0 + }, + "Decimals": { + "Type": 3.0, + "Integer": 3.0 + }, + "Prefix": { + "Type": 5.0, + "String": "" + }, + "Suffix": { + "Type": 5.0, + "String": "" + }, + "ThousandsSep": { + "Type": 2.0, + "Boolean": 1.0 + }, + "Editable": { + "Type": 2.0, + "Boolean": 1.0 + }, + "ForeColour": { + "Type": 4.0, + "Color": { + "Red": 0.0, + "Green": 0.0, + "Blue": 0.0, + "Alpha": 255.0 + } + }, + "BackColour": { + "Type": 4.0, + "Color": { + "Red": 255.0, + "Green": 255.0, + "Blue": 255.0, + "Alpha": 255.0 + } + }, + "TabOrder": { + "Type": 3.0, + "Integer": -1.0 + } + } + }, "Numeric": { "Visible": 1.0, "ObjectProperties": { @@ -4648,11 +4731,11 @@ }, "X": { "Type": 3.0, - "Integer": 234.0 + "Integer": 192.0 }, "Y": { "Type": 3.0, - "Integer": 1704.0 + "Integer": 1707.0 }, "Width": { "Type": 3.0, @@ -5730,7 +5813,7 @@ }, "Y": { "Type": 3.0, - "Integer": 624.0 + "Integer": 621.0 }, "Width": { "Type": 3.0, @@ -5771,7 +5854,7 @@ }, "Y": { "Type": 3.0, - "Integer": 624.0 + "Integer": 621.0 }, "Width": { "Type": 3.0, @@ -5812,7 +5895,7 @@ }, "Y": { "Type": 3.0, - "Integer": 624.0 + "Integer": 621.0 }, "Width": { "Type": 3.0, @@ -5853,7 +5936,7 @@ }, "Y": { "Type": 3.0, - "Integer": 684.0 + "Integer": 681.0 }, "Width": { "Type": 3.0, @@ -6268,7 +6351,7 @@ }, "Y": { "Type": 3.0, - "Integer": 684.0 + "Integer": 681.0 }, "Width": { "Type": 3.0, @@ -6351,7 +6434,7 @@ }, "Y": { "Type": 3.0, - "Integer": 684.0 + "Integer": 681.0 }, "Width": { "Type": 3.0, @@ -6430,11 +6513,11 @@ }, "X": { "Type": 3.0, - "Integer": 234.0 + "Integer": 192.0 }, "Y": { "Type": 3.0, - "Integer": 1674.0 + "Integer": 1677.0 }, "Width": { "Type": 3.0, @@ -6596,7 +6679,7 @@ }, "X": { "Type": 3.0, - "Integer": 588.0 + "Integer": 531.0 }, "Y": { "Type": 3.0, @@ -8089,7 +8172,7 @@ }, "X": { "Type": 3.0, - "Integer": 573.0 + "Integer": 474.0 }, "Y": { "Type": 3.0, @@ -8172,11 +8255,11 @@ }, "X": { "Type": 3.0, - "Integer": 234.0 + "Integer": 192.0 }, "Y": { "Type": 3.0, - "Integer": 1788.0 + "Integer": 1791.0 }, "Width": { "Type": 3.0, @@ -8342,7 +8425,7 @@ }, "Y": { "Type": 3.0, - "Integer": 57.0 + "Integer": 54.0 }, "Width": { "Type": 3.0, @@ -8379,7 +8462,7 @@ }, "Y": { "Type": 3.0, - "Integer": 552.0 + "Integer": 549.0 }, "Width": { "Type": 3.0, @@ -8564,7 +8647,7 @@ }, "Y": { "Type": 3.0, - "Integer": 2307.0 + "Integer": 2301.0 }, "Width": { "Type": 3.0, @@ -8601,7 +8684,7 @@ }, "Y": { "Type": 3.0, - "Integer": 2280.0 + "Integer": 2277.0 }, "Width": { "Type": 3.0, @@ -8717,7 +8800,7 @@ }, "X": { "Type": 3.0, - "Integer": 588.0 + "Integer": 531.0 }, "Y": { "Type": 3.0, @@ -8800,7 +8883,7 @@ }, "X": { "Type": 3.0, - "Integer": 768.0 + "Integer": 711.0 }, "Y": { "Type": 3.0, @@ -9086,7 +9169,7 @@ }, "X": { "Type": 3.0, - "Integer": 693.0 + "Integer": 636.0 }, "Y": { "Type": 3.0, @@ -9214,7 +9297,7 @@ }, "Y": { "Type": 3.0, - "Integer": 603.0 + "Integer": 600.0 }, "Width": { "Type": 3.0, @@ -9404,7 +9487,7 @@ }, "Width": { "Type": 3.0, - "Integer": 120.0 + "Integer": 102.0 }, "Height": { "Type": 3.0, @@ -9644,7 +9727,7 @@ }, "X": { "Type": 3.0, - "Integer": 738.0 + "Integer": 681.0 }, "Y": { "Type": 3.0, @@ -9706,7 +9789,7 @@ }, "X": { "Type": 3.0, - "Integer": 738.0 + "Integer": 681.0 }, "Y": { "Type": 3.0, @@ -9768,11 +9851,11 @@ }, "X": { "Type": 3.0, - "Integer": 390.0 + "Integer": 348.0 }, "Y": { "Type": 3.0, - "Integer": 1788.0 + "Integer": 1791.0 }, "Width": { "Type": 3.0, @@ -9830,11 +9913,11 @@ }, "X": { "Type": 3.0, - "Integer": 390.0 + "Integer": 348.0 }, "Y": { "Type": 3.0, - "Integer": 1701.0 + "Integer": 1704.0 }, "Width": { "Type": 3.0, @@ -9954,11 +10037,11 @@ }, "X": { "Type": 3.0, - "Integer": 399.0 + "Integer": 333.0 }, "Y": { "Type": 3.0, - "Integer": 1671.0 + "Integer": 1674.0 }, "Width": { "Type": 3.0, @@ -10268,7 +10351,7 @@ }, "Y": { "Type": 3.0, - "Integer": 603.0 + "Integer": 600.0 }, "Width": { "Type": 3.0, @@ -10346,7 +10429,7 @@ }, "Items": { "Type": 6.0, - "StringList": "1995|1996|1997|1998|1999|2000|2001|2002|2003|2004|2005|2006|2007|2008|2009|2010|2011|2012|2013|2014|2015|2016|2017|2018|2019|2020|2021|2022|2023|2024" + "StringList": "1995|1996|1997|1998|1999|2000|2001|2002|2003|2004|2005|2006|2007|2008|2009|2010|2011|2012|2013|2014|2015|2016|2017|2018|2019|2020|2021|2022" }, "Selection": { "Type": 3.0, @@ -10367,7 +10450,7 @@ }, "X": { "Type": 3.0, - "Integer": 768.0 + "Integer": 711.0 }, "Y": { "Type": 3.0, @@ -10816,19 +10899,6 @@ } }, "VarDatabase": { - "baseline_cost": { - "Version": 4.0, - "Type": 1.0, - "Label": "Baseline cost", - "Units": "$/kW", - "Group": "Geothermal Capital Costs", - "IndexLabels": "", - "Flags": 10.0, - "DefaultValue": 0.0, - "UIObject": "Default", - "sscVariableName": "", - "sscVariableValue": "" - }, "construction_ppi": { "Version": 4.0, "Type": 1.0, @@ -11128,19 +11198,6 @@ "sscVariableName": "", "sscVariableValue": "" }, - "geotherm.cost.epc.nonfixed": { - "Version": 4.0, - "Type": 1.0, - "Label": " ", - "Units": " ", - "Group": "Geothermal Capital Costs", - "IndexLabels": "", - "Flags": 8.0, - "DefaultValue": 0.0, - "UIObject": "Numeric", - "sscVariableName": "", - "sscVariableValue": "" - }, "geotherm.cost.epc.percent": { "Version": 4.0, "Type": 1.0, @@ -11180,6 +11237,19 @@ "sscVariableName": "", "sscVariableValue": "" }, + "geotherm.cost.expl_lump_sum": { + "Version": 4.0, + "Type": 1.0, + "Label": "Expl Lump Sum", + "Units": "$", + "Group": "", + "IndexLabels": "", + "Flags": 2.0, + "DefaultValue": 0.0, + "UIObject": "Default", + "sscVariableName": "", + "sscVariableValue": "" + }, "geotherm.cost.expl_multiplier": { "Version": 4.0, "Type": 1.0, @@ -11401,19 +11471,6 @@ "sscVariableName": "", "sscVariableValue": "" }, - "geotherm.cost.num_pumps": { - "Version": 4.0, - "Type": 1.0, - "Label": "# of Pumps Required", - "Units": " ", - "Group": "Geothermal Capital Costs", - "IndexLabels": "", - "Flags": 8.0, - "DefaultValue": 0.0, - "UIObject": "Numeric", - "sscVariableName": "", - "sscVariableValue": "" - }, "geotherm.cost.other_per_pump": { "Version": 4.0, "Type": 1.0, @@ -11583,19 +11640,6 @@ "sscVariableName": "", "sscVariableValue": "" }, - "geotherm.cost.plm.nonfixed": { - "Version": 4.0, - "Type": 1.0, - "Label": " ", - "Units": " ", - "Group": "Geothermal Capital Costs", - "IndexLabels": "", - "Flags": 8.0, - "DefaultValue": 0.0, - "UIObject": "Numeric", - "sscVariableName": "", - "sscVariableValue": "" - }, "geotherm.cost.plm.percent": { "Version": 4.0, "Type": 1.0, @@ -12168,19 +12212,6 @@ "sscVariableName": "", "sscVariableValue": "" }, - "geotherm.cost.total_installed_millions": { - "Version": 4.0, - "Type": 1.0, - "Label": "Total Installed Cost", - "Units": "$M", - "Group": "Geothermal Capital Costs", - "IndexLabels": "", - "Flags": 8.0, - "DefaultValue": 0.0, - "UIObject": "Default", - "sscVariableName": "", - "sscVariableValue": "" - }, "geotherm.cost.total_surface_equipment_cost": { "Version": 4.0, "Type": 1.0, @@ -12265,7 +12296,7 @@ "Label": "PPI Base Year", "Units": " ", "Group": "Geothermal Capital Costs", - "IndexLabels": "1995|1996|1997|1998|1999|2000|2001|2002|2003|2004|2005|2006|2007|2008|2009|2010|2011|2012|2013|2014|2015|2016|2017|2018|2019|2020|2021|2022|2023|2024", + "IndexLabels": "1995|1996|1997|1998|1999|2000|2001|2002|2003|2004|2005|2006|2007|2008|2009|2010|2011|2012|2013|2014|2015|2016|2017|2018|2019|2020|2021|2022", "Flags": 3.0, "DefaultValue": 0.0, "UIObject": "Choice", @@ -12363,32 +12394,6 @@ "sscVariableName": "", "sscVariableValue": "" }, - "system_recapitalization_cost": { - "Version": 4.0, - "Type": 1.0, - "Label": " ", - "Units": " ", - "Group": "Geothermal Capital Costs", - "IndexLabels": "", - "Flags": 8.0, - "DefaultValue": 0.0, - "UIObject": "Default", - "sscVariableName": "", - "sscVariableValue": "" - }, - "system_use_recapitalization": { - "Version": 4.0, - "Type": 1.0, - "Label": " ", - "Units": " ", - "Group": "Geothermal Capital Costs", - "IndexLabels": "", - "Flags": 8.0, - "DefaultValue": 1.0, - "UIObject": "Default", - "sscVariableName": "", - "sscVariableValue": "" - }, "total_direct_cost": { "Version": 4.0, "Type": 1.0, @@ -12443,466 +12448,170 @@ } }, "Equations": [ - "equations{ 'geotherm.cost.plm.total' } = define() {", - "\treturn ${geotherm.cost.plm.fixed}+${geotherm.cost.plm.nonfixed}; \r", - "};", - "", - "equations{ 'geotherm.cost.prod_req' } = define() {", - "\treturn ${num_wells_getem}; \r", - "};", - "", - "equations{ 'geotherm.cost.pumping.amount' } = define() {", - "\treturn ?${geotherm.cost.pumping.calc}[", - "\t\t${geotherm.cost.pumping.amount_specified},\r", - "\t\t${geotherm.cost.pumps_total}+${geotherm.cost.surf_total}+${indirect_pump_cost}\r", - "\t]; \r", - "};", - "", - "equations{ 'geotherm.cost.prod_inj_drill' } = define() {", - "\treturn ${geotherm.cost.prod_drill} + ${geotherm.cost.inj_drill}; \r", - "};", - "", - "/*", - "equations{ 'geotherm.cost.prod_wells_drilled' } = define() {", - "\tnum_wells = ${geotherm.cost.prod_req} - ${geotherm.cost.confirm_wells_num};\r", - "\tif (num_wells < 0) num_wells = 0;\r", - "\treturn num_wells;\r", - "};", - "*/", - "", - "equations{ 'total_indirect_cost' } = define() {", - "\treturn ?${geotherm.cost.indirect.calc}[", - "\t\t${geotherm.cost.indirect.amount_specified},\r", - "\t\t${geotherm.cost.epc.total}+${geotherm.cost.plm.total}+${geotherm.cost.sales_tax.total}\r", - "\t]; \r", - "};", - "/*", - "equations{ 'geotherm.cost.pumps_total' } = define() {", - "\treturn ${geotherm.cost.pump_total_per_pump} * ${geotherm.cost.num_pumps} + ${geotherm.cost.pump_fixed}", - "\t\t+ ${prod_pump_cost} + ${inj_pump_cost}; };\r", - "*/\r", - "", - "equations{ 'total_direct_cost' } = define() {", - "\treturn ${geotherm.cost.contingency}+${geotherm.cost.capital_total}; };", - "", - "equations{ 'geotherm.cost.drilling.amount' } = define() {", - "\treturn ?${geotherm.cost.drilling.calc}[", - "\t\t${geotherm.cost.drilling.amount_specified}, /* =0 user specified */", - "\t\t${geotherm.cost.drilling.amount_calc}]; \r", - "};", - "", - "equations{ 'geotherm.cost.prod_inj_total' } = define() {", - "\treturn ${geotherm.cost.prod_inj_drill} + ${geotherm.cost.prod_inj_non_drill}; };", - "", - "equations{ 'geotherm.cost.recap' } = define() {", - "\treturn ?${geotherm.cost.recap_use_calc}[", - "\t\t${geotherm.cost.recap_specified}, /* =0 user specified */", - "\t\t${geotherm.cost.conf_drill} /* =1 use calculated */", - "\t\t+ ${geotherm.cost.prod_inj_drill}", - "\t\t+ ${geotherm.cost.surf_total}", - "\t\t+ ${geotherm.cost.pumps_total}]; \r", - "};", - "", - "equations{ 'geotherm.cost.prod_num_wells' } = define() {", - "//\treturn ${geotherm.cost.confirm_wells_num} / (1 - (1 - ${stim_success_rate}/100) * (1 - ${drilling_success_rate}/100)); };\r", - "\t//return ${geotherm.cost.prod_wells_drilled} / (1 - (1 - ${stim_success_rate}/100) * (1 - ${drilling_success_rate}/100)); \r", - "\treturn ${geotherm.cost.prod_wells_drilled};\r", + "// -- Set display values from outputs of ssc auto exec\r", + "equations{ '$MIMO$ cmod_geothermal_costs'} = define() {\r", + "\r", + "\t${geotherm.cost.plant_per_kW} = ${baseline_cost_calc};\r", + "\t${geotherm.cost.pumps_total} = ${total_pump_cost_calc};\r", + "\r", + "\t${geotherm.cost.surf_total} = ${total_gathering_cost_calc};\r", + "\t${geotherm.cost.pump_cost_install} = ${pump_cost_install_calc};\r", + "\t${geotherm.cost.pump_only_cost} = ${pump_only_cost_calc};\r", + "\t${geotherm.cost.prod_pump_cost_per_well} = ${prod_pump_cost_per_well_calc};\r", + "\t${geotherm.cost.inj_pump_cost_per_pump} = ${inj_pump_cost_per_pump_calc};\r", + "\t${inj_num_pumps} = ${inj_num_pumps_calc};\r", + "\r", + "\t${prod_pump_cost} = ${prod_pump_cost_calc};\r", + "\t${inj_pump_cost} = ${inj_pump_cost_calc};\r", + "\t${indirect_pump_cost} = ${indirect_pump_cost_calc};\r", + "\t${geotherm.cost.total_surface_equipment_cost} = ${total_surface_equipment_cost_calc};\r", + "\r", + "\t${geotherm.cost.surf_per_well} = ${piping_cost_per_well_calc};\r", + "\t${geotherm.cost.surf_num_wells} = ${field_gathering_num_wells_calc};\r", + "\t${geotherm.cost.stim_per_well} = ${stim_cost_per_well_calc};\r", + "\t${geotherm.cost.stim_total} = ${stim_total_cost_calc};\r", + "\t\r", + "\t${geotherm.cost.expl_total} = ${expl_total_cost_calc};\r", + "\t${geotherm.cost.expl_drill} = ${expl_drilling_cost_calc};\r", + "\t${geotherm.cost.conf_total} = ${conf_total_cost_calc};\r", + "\t${geotherm.cost.conf_drill} = ${conf_drilling_cost_calc};\r", + "\r", + "\t${geotherm.cost.prod_per_well} = ${prod_well_cost_calc};\r", + "\t${geotherm.cost.prod_drill} = ${prod_total_cost_calc};\r", + "\t${geotherm.cost.inj_per_well} = ${inj_well_cost_calc};\t\r", + "\t${geotherm.cost.inj_drill} = ${inj_total_cost_calc};\r", + "\t${geotherm.cost.drilling.amount_calc} = ${total_drilling_cost_calc};\r", "};\r", - "", - "equations{ 'geotherm.cost.plm.nonfixed' } = define() {", - "\treturn ${total_direct_cost}*${geotherm.cost.plm.percent}/100; };", - "", - "equations{ 'geotherm.cost.num_pumps' } = define() {", - "\tif (${conversion_type} == 1) {\r", - "\t\treturn 0;\r", - "\t}\r", - "\telse {\r", - "\t\treturn ${geotherm.cost.prod_req}; \r", - "\t}\r", - "};", - "", - "equations{ 'geotherm.cost.pump_size' } = define() {", - "\treturn ${pump_size_hp}; };", - "", - "equations{ 'geotherm.cost.sales_tax.total' } = define() {", - "\treturn ${geotherm.cost.sales_tax.value}/100*${total_direct_cost}*${geotherm.cost.sales_tax.percent}/100; };", - "", - "equations{ 'geotherm.cost.stim_num_wells' } = define() {", - "\treturn ${geotherm.cost.inj_num_wells}; };", - "/*", - "equations{ 'geotherm.cost.surf_total' } = define() {", - "\treturn ${geotherm.cost.surf_non_drill}; };", - "*/", - "equations{ 'geotherm.cost.installed_per_capacity' } = define() {", - "\treturn ${total_installed_cost}/${geotherm.net_output}/1000; };", - "", - "equations{ 'geotherm.cost.plant_total' } = define() ", - "{", - "\tif (${geotherm.cost.plant_auto_estimate} == 0){", - "\t\treturn ${geotherm.cost.plant_per_kW_input} * ${geotherm.cost.plant_size}; ", - "\t}", - "\telse {", - "\t\treturn ${geotherm.cost.plant_per_kW} * ${geotherm.cost.plant_size}; ", - "\t}", - "};", - "", - "equations{ 'geotherm.cost.epc.total' } = define() {", - "\treturn ${geotherm.cost.epc.fixed}+${geotherm.cost.epc.nonfixed}; };", - "", - "equations{ 'geotherm.cost.plant_size' } = define() {", - "\treturn ${gross_output} * 1000; };", - "", - "equations{ 'geotherm.cost.inj_num_wells' } = define() {", - "\treturn ${geotherm.cost.inj_wells_drilled}; \r", - "\t/*\r", - "\tif (${resource_type} == 0) ", - "\t return ${num_wells_getem_inj} / (${drilling_success_rate}/100);\r", - "\telse \r", - "\t\treturn ${num_wells_getem_inj} / (1 - (1 - ${drilling_success_rate}/100) * (1 - ${stim_success_rate}/100));", - "\t*/\r", - "};\t", - "", - "equations{ 'geotherm.cost.contingency' } = define() {", - "\treturn ${geotherm.cost.contingency_percent}/100*(${geotherm.cost.capital_total}-", - "\t\t${geotherm.cost.prod_inj_drill}); };", - "", - "equations{ 'geotherm.cost.pump_depth' } = define() {", - "\treturn ${pump_depth}; };", - "", - "equations{ 'geotherm.cost.expl_per_well' } = define() {", - "\treturn ${geotherm.cost.expl_multiplier} * ${geotherm.cost.prod_per_well}; };", - "", - "equations{ 'geotherm.cost.confirm_wells_num' } = define() {", - "\treturn ${geotherm.cost.conf_num_wells} * (${geotherm.cost.confirm_wells_percent}/100); };", - "", - "equations{ 'geotherm.cost.epc.nonfixed' } = define() {", - "\treturn ${total_direct_cost}*${geotherm.cost.epc.percent}/100; };", - "", + "\r", + "equations{ 'geotherm.cost.prod_req' } = define() {\r", + "\treturn ${num_wells_calc}; \r", + "};\r", + "\r", + "equations{ 'geotherm.cost.prod_num_wells' } = define() {\r", + "\treturn ${num_wells_getem_prod_drilled_calc};\r", + "};\r", + "\r", + "equations{ 'geotherm.cost.prod_inj_drill' } = define() {\r", + "\treturn ${sum_prod_inj_total_cost_calc};\t// ${geotherm.cost.prod_drill} + ${geotherm.cost.inj_drill}; \r", + "};\r", + "\r", + "equations{ 'geotherm.cost.prod_inj_total' } = define() {\r", + "\treturn ${prod_inj_total_cost_calc};\t// ${geotherm.cost.prod_inj_drill} + ${geotherm.cost.prod_inj_non_drill}; };\r", + "};\r", + "\r", + "equations{ 'geotherm.cost.pump_size' } = define() {\r", + "\treturn ${pump_size_hp_calc}; };\r", + "\r", + "equations{ 'geotherm.cost.inj_num_wells' } = define() {\r", + "\treturn ${num_wells_getem_inj_drilled_calc}; \r", + "};\t\r", + "\r", + "equations{ 'geotherm.cost.stim_num_wells' } = define() {\r", + "\treturn ${num_wells_getem_inj_drilled_calc}; };\r", + "\r", + "equations{ 'geotherm.cost.pump_depth' } = define() {\r", + "\treturn ${pump_depth_ft_calc}; };\r", + "\r", + "equations{ 'geotherm.cost.prod_inj_num_wells' } = define() {\r", + "\treturn ${num_wells_getem_prod_inj_sum_calc};\t\r", + "};\r", + "\r", + "equations{ 'geotherm.cost.expl_per_well' } = define() {\r", + "\treturn ${expl_cost_per_well_calc}; \t// ${geotherm.cost.expl_multiplier} * ${geotherm.cost.prod_per_well}; };\r", + "};\r", + "\r", + "equations{ 'geotherm.cost.plant_total' } = define() {\r", + "\treturn ${total_plant_cost_calc};\r", + "};\r", + "\r", + "equations{ 'geotherm.cost.plant_size' } = define() {\r", + "\treturn ${gross_cost_output_calc};\r", + "};\r", + "\r", + "equations{ 'geotherm.cost.confirm_wells_num' } = define() {\r", + "\treturn ${num_confirm_wells_to_production_calc}; \r", + "}; \r", + "\r", + "equations{'exploration_wells_production'} = define() {\r", + "\treturn ${num_confirm_wells_to_production_calc};\r", + "};\r", + "\r", "equations{ 'geotherm.cost.plant_total.amount' } = define() {", - "\treturn ?${geotherm.cost.plant_total.calc}[", - "\t\t${geotherm.cost.plant_total.amount_specified},\r", - "\t\t${geotherm.cost.plant_total}]; \r", - "};", - "", - "", - "equations{ 'total_installed_cost' } = define() {", - "\treturn ${total_direct_cost}+${total_indirect_cost}; \r", - "};", - "", - "", - "equations{ 'geotherm.cost.capital_total' } = define() {", - "\treturn ${geotherm.cost.drilling.amount} + ${geotherm.cost.plant_total.amount} + ${geotherm.cost.pumping.amount}; \r", - "};", - "", - "equations{ 'geotherm.cost.prod_inj_num_wells' } = define() {", - "\treturn ${geotherm.cost.prod_num_wells} + ${geotherm.cost.inj_num_wells}; \r", - "};", - "", - "equations{ 'geotherm.cost.sales_tax.value' } = define() {", + "\treturn ${total_plant_cost_used_calc};\r", + "};\r", + "\r", + "equations{ 'geotherm.cost.drilling.amount' } = define() {\r", + "\treturn ${total_drilling_cost_used_calc};\r", + "};\r", + "\r", + "equations{ 'geotherm.cost.pumping.amount' } = define() {\r", + "\treturn ${total_pump_gathering_cost_used_calc};\r", + "};\r", + "\r", + "equations{ 'geotherm.cost.recap' } = define() {\r", + "\treturn ${system_recapitalization_cost_calc};\r", + "};\r", + "\r", + "equations{ 'geotherm.cost.capital_total' } = define() {\r", + "\treturn ${total_capital_cost_calc};\r", + "};\r", + "\r", + "equations{ 'geotherm.cost.contingency' } = define() {\r", + "\treturn ${contingency_cost_calc}; \r", + "};\r", + "\r", + "equations{ 'total_direct_cost' } = define() {\r", + "\treturn ${total_direct_cost_calc};\r", + "};\r", + "\r", + "equations{ 'geotherm.cost.epc.total' } = define() {\r", + "\treturn ${epc_total_cost_calc};\r", + "};\r", + "\r", + "equations{ 'geotherm.cost.plm.total' } = define() {\r", + "\treturn ${plm_total_cost_calc};\r", + "};\r", + "\r", + "equations{ 'geotherm.cost.sales_tax.total' } = define() {\r", + "\treturn ${sales_tax_cost_calc};\r", + "};\r", + "\r", + "// sales tax value is only a UI indicator\r", + "// the sales tax rate is calculated in the geo cost cmod\r", + "// using geo_financial_model\r", + "equations{ 'geotherm.cost.sales_tax.value' } = define() {\r", "\tif (financing() != \"LCOE Calculator\") {\r", "\t\treturn ${sales_tax_rate}; \r", "\t}\r", "\telse {\r", "\t\treturn 0;\r", "\t}\r", - "};", - "", - "equations{ 'geotherm.cost.total_installed_millions' } = define() {", - "\treturn ${total_installed_cost}/1000000; \r", - "};", - "", - "equations{ 'system_recapitalization_cost' } = define() {", - "\treturn ${geotherm.cost.recap}; \r", - "};", - "\t", - "equations{ '$MIMO$ cmod_geothermal_costs'} = define() {", - "\t\tgeothermal = ssc_create();\t", - "\t\tssc_var( geothermal, 'ui_calculations_only', 0);", - "\t\tssc_var( geothermal, 'adjust_constant', 0.0);", - "\t\tssc_var( geothermal, 'file_name', ${file_name});", - "\t\tssc_var( geothermal, 'resource_potential', ${resource_potential});", - "\t\tssc_var( geothermal, 'resource_type', ${resource_type} ); // INTEGER", - "\t\tif (${resource_temp} < 374) {\r", - "\t\t\tssc_var( geothermal, 'resource_temp', ${resource_temp} );\r", - "\t\t}\r", - "\t\telse {\r", - "\t\t\tssc_var( geothermal, 'resource_temp', ${resource_temp_old} );\r", - "\t\t}", - "\t\tssc_var( geothermal, 'resource_depth', ${resource_depth} );", - "\t\tssc_var( geothermal, 'dt_prod_well', ${dt_prod_well} );\t", - "\t\tssc_var( geothermal, 'prod_well_choice', ${prod_well_choice} );\t\t\t\t\t\t\t\t\t\t\t\t", - "\t\t// Other inputs\t\t\t\t\t\t\t ", - "\t\tssc_var( geothermal, 'geothermal_analysis_period', ${geothermal_analysis_period} ); // INTEGER", - "\t\tssc_var( geothermal, 'model_choice', ${model_choice} ); // INTEGER", - "\t\tssc_var( geothermal, 'geotherm.cost.inj_prod_well_ratio', ${geotherm.cost.inj_prod_well_ratio});", - "\t\tssc_var( geothermal, 'drilling_success_rate', ${drilling_success_rate});\r", - "\t\tssc_var( geothermal, 'stim_success_rate', ${stim_success_rate});\r", - "\t\tssc_var( geothermal, 'failed_prod_flow_ratio', ${failed_prod_flow_ratio});\r", - "\t\tssc_var( geothermal, 'stimulation_type', ${stimulation_type});\r", - "\t\t// geothermal plant and equipment\t\t ", - "\t\tssc_var( geothermal, 'nameplate', ${nameplate} );", - "\t\tssc_var( geothermal, 'analysis_type', ${analysis_type} ); //INTEGER", - "\t\tssc_var( geothermal, 'num_wells', ${num_wells} );", - "\t\tssc_var( geothermal, 'num_wells_getem', ${num_wells_getem});", - "\t\tssc_var( geothermal, 'conversion_type', ${conversion_type} ); // INTEGER", - "\t\tssc_var( geothermal, 'ppi_base_year', ${ppi_base_year} );", - "\t\tssc_var( geothermal, 'plant_efficiency_input', ${plant_efficiency_input} );", - "\t\tssc_var( geothermal, 'conversion_subtype', ${conversion_subtype} ); // INTEGER", - "\t\tif (${resource_type} == 0)", - "\t\t\tssc_var( geothermal, 'decline_type', 0 ); // INTEGER", - "\t\telse if (${conversion_type} == 0) ", - "\t\t\tssc_var( geothermal, 'decline_type', ${decline_type});", - "\t\telse ", - "\t\t\tssc_var( geothermal, 'decline_type', 0);", - "\t\tssc_var( geothermal, 'temp_decline_rate', ${temp_decline_rate} );", - "\t\tssc_var( geothermal, 'temp_decline_max', ${temp_decline_max} );", - "\t\tssc_var( geothermal, 'wet_bulb_temp', ${wet_bulb_temp} );\r", - "\t\tssc_var( geothermal, 'use_weather_file_conditions', ${use_weather_file_conditions} );", - "\t\tssc_var( geothermal, 'ambient_pressure', ${ambient_pressure} );", - "\t\tssc_var( geothermal, 'well_flow_rate', ${well_flow_rate} );", - "\t\tssc_var( geothermal, 'pump_efficiency', ${pump_efficiency} );", - "\t\tssc_var( geothermal, 'delta_pressure_equip', ${delta_pressure_equip} );", - "\t\tssc_var( geothermal, 'excess_pressure_pump', ${excess_pressure_pump} );", - "\t\tssc_var( geothermal, 'geotherm.cost.inj_cost_curve_welltype', ${geotherm.cost.inj_cost_curve_welltype} );", - "\t\tssc_var( geothermal, 'geotherm.cost.prod_cost_curve_welltype', ${geotherm.cost.prod_cost_curve_welltype} );", - "\t\tssc_var( geothermal, 'geotherm.cost.inj_cost_curve_welldiam', ${geotherm.cost.inj_cost_curve_welldiam} );\r", - "\t\tssc_var( geothermal, 'geotherm.cost.prod_cost_curve_welldiam', ${geotherm.cost.prod_cost_curve_welldiam} );\r", - "\t\tssc_var( geothermal, 'geotherm.cost.inj_cost_curve', ${geotherm.cost.inj_cost_curve});\r", - "\t\tssc_var( geothermal, 'geotherm.cost.prod_cost_curve', ${geotherm.cost.prod_cost_curve});", - "\t\tssc_var( geothermal, 'design_temp', ${design_temp} );", - "\t\tssc_var( geothermal, 'specify_pump_work', ${specify_pump_work} ); // INTEGER", - "\t\tssc_var( geothermal, 'specified_pump_work_amount', ${specified_pump_work_amount} );", - "\t\t\r", - "\t\tssc_var( geothermal, 'allow_reservoir_replacements', ${allow_reservoir_replacements});", - "\t\t// detailed geothermal inputs", - "\t\tssc_var( geothermal, 'rock_thermal_conductivity', ${rock_thermal_conductivity} );", - "\t\tssc_var( geothermal, 'rock_specific_heat', ${rock_specific_heat} );", - "\t\tssc_var( geothermal, 'rock_density', ${rock_density} );", - "\t\tif (${resource_type} != 1 && ${reservoir_pressure_change_type} == 1) {", - "\t\t\tssc_var( geothermal, 'reservoir_pressure_change_type', 0 ); // INTEGER", - "\t\t\tmsgbox('Fracture flow calculations can only be used with EGS resource. Please check the inputs on the Geothermal Resource page. The enter change in reservoir option is being used currently.');", - "\t\t}", - "\t\telse ", - "\t\t\tssc_var( geothermal, 'reservoir_pressure_change_type', ${reservoir_pressure_change_type} ); // INTEGER", - "\t\t\r", - "\t\tssc_var( geothermal, 'reservoir_pressure_change', ${reservoir_pressure_change} );", - "\t\tssc_var( geothermal, 'injectivity_index', ${injectivity_index} );\r", - "\t\tssc_var( geothermal, 'exploration_wells_production', ${geotherm.cost.confirm_wells_num} );\r", - "\t\tssc_var( geothermal, 'reservoir_width', ${reservoir_width} );", - "\t\tssc_var( geothermal, 'reservoir_height', ${reservoir_height} );", - "\t\tssc_var( geothermal, 'reservoir_permeability', ${reservoir_permeability} );\t\t", - "\t\tssc_var( geothermal, 'inj_prod_well_distance', ${inj_prod_well_distance} );\t\t", - "\t\tssc_var( geothermal, 'subsurface_water_loss', ${subsurface_water_loss} ); \t\t", - "\t\tssc_var( geothermal, 'fracture_aperature', ${fracture_aperature} );", - "\t\tssc_var( geothermal, 'fracture_width', ${fracture_width} );", - "\t\tssc_var( geothermal, 'fracture_length', ${fracture_length} );", - "\t\tssc_var( geothermal, 'fracture_spacing', ${fracture_spacing} );", - "\t\tssc_var( geothermal, 'num_fractures', ${num_fractures} ); // INTEGER", - "\t\tssc_var( geothermal, 'fracture_angle', ${fracture_angle} );", - "\t\tssc_var( geothermal, 'reservoir_model_inputs', ${reservoir_model_inputs} );", - "", - "\t\t// temp input for testing", - "\t\tssc_var( geothermal, 'hr_pl_nlev', ${hr_pl_nlev} ); // INTEGER", - "\t\t", - "\t\t//power block parameters needed but not on power block SAM input page", - "\t\tssc_var( geothermal, 'T_htf_cold_ref', ${T_htf_cold_ref});", - "\t\tssc_var( geothermal, 'T_htf_hot_ref', ${T_htf_hot_ref});", - "\t\tssc_var( geothermal, 'HTF', ${HTF});", - "\t\t", - "\t\t//power block input parameters", - "\t\tssc_var( geothermal, 'P_boil', ${P_boil});", - "\t\tssc_var( geothermal, 'eta_ref', ${eta_ref});", - "\t\tssc_var( geothermal, 'q_sby_frac', ${q_sby_frac});", - "\t\tssc_var( geothermal, 'startup_frac', ${startup_frac});", - "\t\tssc_var( geothermal, 'startup_time', ${startup_time});", - "\t\tssc_var( geothermal, 'pb_bd_frac', ${pb_bd_frac});", - "\t\tssc_var( geothermal, 'T_amb_des', ${T_amb_des});", - "\t\tssc_var( geothermal, 'CT', ${CT});", - "\t\tssc_var( geothermal, 'dT_cw_ref', ${dT_cw_ref});", - "\t\tssc_var( geothermal, 'T_approach', ${T_approach});", - "\t\tssc_var( geothermal, 'T_ITD_des', ${T_ITD_des});", - "\t\tssc_var( geothermal, 'P_cond_ratio', ${P_cond_ratio});", - "\t\tssc_var( geothermal, 'P_cond_min', ${P_cond_min});", - "\t\tssc_var( geothermal, 'hc_ctl1', ${hc_ctl1});", - "\t\tssc_var( geothermal, 'hc_ctl2', ${hc_ctl2});", - "\t\tssc_var( geothermal, 'hc_ctl3', ${hc_ctl3});", - "\t\tssc_var( geothermal, 'hc_ctl4', ${hc_ctl4});", - "\t\tssc_var( geothermal, 'hc_ctl5', ${hc_ctl5});", - "\t\tssc_var( geothermal, 'hc_ctl6', ${hc_ctl6});", - "\t\tssc_var( geothermal, 'hc_ctl7', ${hc_ctl7});", - "\t\tssc_var( geothermal, 'hc_ctl8', ${hc_ctl8});", - "\t\tssc_var( geothermal, 'hc_ctl9', ${hc_ctl9});", - "\t\tssc_var( geothermal, 'hybrid_dispatch_schedule', ${hybrid_dispatch_schedule});", - "\t\tresult = ssc_exec(geothermal, 'geothermal');", - "\t\tif ( typeof(result) != 'number' && result != 0 )\r", - "\t\t{\r", - "\t\t\tmsgbox('geothermal mimo error, result =' + result); \r", - "\t\t}", - "\t\tif (ssc_exec(geothermal, 'geothermal') == 0) ", - "\t\t{", - "\t\t\t//geothermal = ssc_create('geothermal_geothermals');\r", - "\t\t\t", - "\t\t\tconversion_type = ${conversion_type};", - "\t\t\tppi_base_year = ${ppi_base_year};", - "\t\t\t//gross_output = ${geotherm.cost.plant_size};", - "\t\t\tdesign_temp = ssc_var(geothermal, \"design_temp\");", - "\t\t\tsecond_law_eff = ssc_var(geothermal, \"eff_secondlaw\");\r", - "\t\t\tprod_wells_failed = ssc_var(geothermal, 'num_wells_getem_prod_failed');", - "\t\t\t//ssc_var(geothermal,'gross_output', gross_output);", - "\t\t\tssc_var(geothermal,'design_temp', design_temp);", - "\t\t\tssc_var(geothermal,'eff_secondlaw', second_law_eff);", - "\t\t\tssc_var(geothermal, \"conversion_type\", conversion_type);\r", - "\t\t\tssc_var(geothermal, 'calc_drill_costs', 1.0); //Always set to 1\r", - "\t\t\tssc_var(geothermal, 'geotherm.cost.pump_fixed', ${geotherm.cost.pump_fixed});\r", - "\t\t\tssc_var(geothermal, 'geotherm.cost.pump_per_foot', ${geotherm.cost.pump_per_foot});\r", - "\t\t\tssc_var(geothermal, 'geotherm.cost.pump_depth', ${geotherm.cost.pump_depth});\r", - "\t\t\t//ssc_var(geothermal, 'geotherm.cost.prod_req', ${geotherm.cost.prod_req});\r", - "\t\t\tssc_var(geothermal, 'pump_size_hp', ${pump_size_hp});\r", - "\t\t\tssc_var(geothermal, 'inj_pump_hp', ${inj_pump_hp});\r", - "\t\t\t\r", - "\t\t\tssc_var(geothermal, 'geotherm.cost.stim_non_drill', ${geotherm.cost.stim_non_drill});\r", - "\t\t\tssc_var(geothermal, 'geotherm.cost.expl_non_drill', ${geotherm.cost.expl_non_drill});\r", - "\t\t\tssc_var(geothermal, 'geotherm.cost.conf_non_drill', ${geotherm.cost.conf_non_drill});\r", - "\t\t\tssc_var(geothermal, 'geotherm.cost.expl_multiplier', ${geotherm.cost.expl_multiplier});\r", - "\t\t\tssc_var(geothermal, 'geotherm.cost.conf_multiplier', ${geotherm.cost.conf_multiplier});\r", - "\t\t\tssc_var(geothermal, 'geotherm.cost.expl_num_wells', ${geotherm.cost.expl_num_wells});\r", - "\t\t\tssc_var(geothermal, 'geotherm.cost.conf_num_wells', ${geotherm.cost.conf_num_wells});\r", - "\t\t\tssc_var(geothermal, 'geotherm.cost.expl_lump_sum', 0);\r", - "\t\t\tssc_var(geothermal, 'geotherm.cost.pump_fixed', ${geotherm.cost.pump_fixed});\r", - "\t\t\tssc_var(geothermal, 'geotherm.cost.pump_per_foot', ${geotherm.cost.pump_per_foot});\r", - "\t\t\tssc_var(geothermal, 'geotherm.cost.pump_casing_cost', ${geotherm.cost.pump_casing_cost});\r", - "\t\t\t\r", - "\t\t\tssc_var(geothermal, 'pump_depth_ft', ${pump_depth});\r", - "\t\t\t//ssc_var(geothermal, 'geotherm.cost.prod_wells_drilled', ${geotherm.cost.prod_wells_drilled});\r", - "\t\t\t//ssc_var(geothermal, 'geotherm.cost.inj_wells_drilled', ${geotherm.cost.inj_wells_drilled});\r", - "\t\t\t//ssc_var(geothermal, 'geotherm.cost.prod_wells_failed', prod_wells_failed);", - "\t\t\t", - "\t\t\t//Flash", - "\t\t\tif (${conversion_type})", - "\t\t\t{", - "\t\t\t\tqRejectTotal = ssc_var(geothermal, \"qRejectTotal\");", - "\t\t\t\tqCondenser = ssc_var(geothermal, \"qCondenser\");", - "\t\t\t\tv_stage_1 = ssc_var(geothermal, \"v_stage_1\");", - "\t\t\t\tv_stage_2 = ssc_var(geothermal, \"v_stage_2\");", - "\t\t\t\tv_stage_3 = ssc_var(geothermal, \"v_stage_3\");", - "\t\t\t\tGF_flowrate = ssc_var(geothermal, \"GF_flowrate\");", - "\t\t\t\tqRejectByStage_1 = ssc_var(geothermal, \"qRejectByStage_1\");", - "\t\t\t\tqRejectByStage_2 = ssc_var(geothermal, \"qRejectByStage_2\");", - "\t\t\t\tqRejectByStage_3 = ssc_var(geothermal, \"qRejectByStage_3\");", - "\t\t\t\tncg_condensate_pump = ssc_var(geothermal, \"ncg_condensate_pump\");", - "\t\t\t\tcw_pump_work = ssc_var(geothermal, \"cw_pump_work\");", - "\t\t\t\tpressure_ratio_1 = ssc_var(geothermal, \"pressure_ratio_1\");", - "\t\t\t\tpressure_ratio_2 = ssc_var(geothermal, \"pressure_ratio_2\");", - "\t\t\t\tpressure_ratio_3 = ssc_var(geothermal, \"pressure_ratio_3\");", - "\t\t\t\tcondensate_pump_power = ssc_var(geothermal, \"condensate_pump_power\");", - "\t\t\t\tcwflow = ssc_var(geothermal, \"cwflow\");", - "\t\t\t\tcw_pump_head = ssc_var(geothermal, \"cw_pump_head\");", - "\t\t\t\tspec_vol = ssc_var(geothermal, \"spec_vol\");", - "\t\t\t\tx_hp = ssc_var(geothermal, \"x_hp\");", - "\t\t\t\thp_flash_pressure = ssc_var(geothermal, \"hp_flash_pressure\");", - "\t\t\t\tspec_vol_lp = ssc_var(geothermal, \"spec_vol_lp\");", - "\t\t\t\tx_lp = ssc_var(geothermal, \"x_lp\");\t\t\t", - "\t\t\t\tlp_flash_pressure = ssc_var(geothermal, \"lp_flash_pressure\");", - "\t\t\t\tflash_count = ssc_var(geothermal, \"flash_count\"); ", - "\t\t\t\t/*", - "\t\t\t\tssc_var(cost,'qRejectTotal', qRejectTotal);", - "\t\t\t\tssc_var(cost,'qCondenser', qCondenser);", - "\t\t\t\tssc_var(cost,'v_stage_1', v_stage_1);", - "\t\t\t\tssc_var(cost,'v_stage_2', v_stage_2);", - "\t\t\t\tssc_var(cost,'v_stage_3', v_stage_3);", - "\t\t\t\tssc_var(cost,'GF_flowrate', GF_flowrate);", - "\t\t\t\tssc_var(cost,'qRejectByStage_1', qRejectByStage_1);", - "\t\t\t\tssc_var(cost,'qRejectByStage_2', qRejectByStage_2);", - "\t\t\t\tssc_var(cost,'qRejectByStage_3', qRejectByStage_3);", - "\t\t\t\tssc_var(cost,\"ncg_condensate_pump\", ncg_condensate_pump);", - "\t\t\t\tssc_var(cost,\"cw_pump_work\", cw_pump_work);", - "\t\t\t\tssc_var(cost,\"pressure_ratio_1\", pressure_ratio_1);", - "\t\t\t\tssc_var(cost,\"pressure_ratio_2\", pressure_ratio_2);", - "\t\t\t\tssc_var(cost,\"pressure_ratio_3\", pressure_ratio_3);", - "\t\t\t\tssc_var(cost,\"condensate_pump_power\",condensate_pump_power);", - "\t\t\t\tssc_var(cost,\"cwflow\", cwflow);", - "\t\t\t\tssc_var(cost,\"cw_pump_head\", cw_pump_head);", - "\t\t\t\tssc_var(cost,'spec_vol', spec_vol);", - "\t\t\t\tssc_var(cost,'x_hp', x_hp);", - "\t\t\t\tssc_var(cost,'hp_flash_pressure', hp_flash_pressure);", - "\t\t\t\tssc_var(cost,'spec_vol_lp', spec_vol_lp);", - "\t\t\t\tssc_var(cost,'x_lp', x_lp);", - "\t\t\t\tssc_var(cost,'lp_flash_pressure', lp_flash_pressure);", - "\t\t\t\tssc_var(cost,'flash_count', flash_count);", - "\t\t\t\t*/", - "\t\t\t}", - "\t\t\t", - "\t\t\tif (ssc_exec(geothermal, 'geothermal_costs') == 0) {\t", - "\t\t\t\t${geotherm.cost.plant_per_kW} = ssc_var(geothermal, 'baseline_cost');\t", - "\t\t\t\t${geotherm.cost.pumps_total} = ssc_var(geothermal, \"total_pump_cost\");\r", - "\t\t\t\t${geotherm.cost.surf_total} = ssc_var(geothermal, \"total_gathering_cost\");\r", - "\t\t\t\t${geotherm.cost.pump_cost_install} = ssc_var(geothermal, \"pump_cost_install\");\r", - "\t\t\t\t${geotherm.cost.pump_only_cost} = ssc_var(geothermal, \"pump_only_cost\");\r", - "\t\t\t\t${geotherm.cost.prod_pump_cost_per_well} = ssc_var(geothermal, \"prod_pump_cost_per_well\");\r", - "\t\t\t\t${geotherm.cost.inj_pump_cost_per_pump} = ssc_var(geothermal, \"inj_pump_cost_per_pump\");\r", - "\t\t\t\t${inj_num_pumps} = ssc_var(geothermal, \"inj_num_pumps\");\r", - "\t\t\t\t${prod_pump_cost} = ssc_var(geothermal, \"prod_pump_cost\");\r", - "\t\t\t\t${inj_pump_cost} = ssc_var(geothermal, \"inj_pump_cost\");\r", - "\t\t\t\t${indirect_pump_cost} = ssc_var(geothermal, \"indirect_pump_gathering_cost\");\r", - "\t\t\t\t${geotherm.cost.total_surface_equipment_cost} = ssc_var(geothermal, \"total_surface_equipment_cost\");\r", - "\t\t\t\t${geotherm.cost.surf_per_well} = ssc_var(geothermal, \"piping_cost_per_well\");\r", - "\t\t\t\t${geotherm.cost.surf_num_wells} = ssc_var(geothermal, \"field_gathering_num_wells\");\r", - "\t\t\t\t\r", - "\t\t\t\t//Stimulation costs\r", - "\t\t\t\t${geotherm.cost.stim_per_well} = ssc_var(geothermal, \"stim_cost_per_well\");\r", - "\t\t\t\t${geotherm.cost.stim_total} = ssc_var(geothermal, \"stim_total_cost\");\r", - "\t\t\t\t\r", - "\t\t\t\t//Exploratin and Confirmation drilling \r", - "\t\t\t\t${geotherm.cost.expl_total} = ssc_var(geothermal, \"expl_total_cost\");\r", - "\t\t\t\t${geotherm.cost.expl_drill} = ssc_var(geothermal, \"expl_drilling_cost\");\r", - "\t\t\t\t${geotherm.cost.conf_total} = ssc_var(geothermal, \"conf_total_cost\");\r", - "\t\t\t\t${geotherm.cost.conf_drill} = ssc_var(geothermal, \"conf_drilling_cost\");\r", - "\t\t\t\t\r", - "\t\t\t\t//Drilling costs\r", - "\t\t\t\t${geotherm.cost.prod_per_well} = ssc_var(geothermal, \"prod_well_cost\");\r", - "\t\t\t\t${geotherm.cost.prod_drill} = ssc_var(geothermal, \"prod_total_cost\");\r", - "\t\t\t\t${geotherm.cost.inj_per_well} = ssc_var(geothermal, \"inj_well_cost\");\r", - "\t\t\t\t${geotherm.cost.inj_drill} = ssc_var(geothermal, \"inj_total_cost\");\r", - "\t\t\t\t\r", - "\t\t\t\t//Total Drilling cost\r", - "\t\t\t\t${geotherm.cost.drilling.amount_calc} = ssc_var(geothermal, \"total_drilling_cost\");\r", - "\t\t\t\t\r", - "\t\t\t\tssc_free(geothermal);\r", - "\t\t\t\treturn 0;", - "\t\t\t\t//return plant_per_kW;", - "\t\t\t}", - "\t\t\telse {\r", - "\t\t\t\tmsgbox(\"Geothermal Costs error \" + result);", - "\t\t\t\tssc_free(geothermal);\r", - "\t\t\t\treturn 0;", - "\t\t\t\t//return 300;", - "\t\t\t}", - "\t\t}", - "\t\telse {", - "\t\t\tssc_free(geothermal);\r", - "\t\t\treturn 0;", - "\t\t\t//return 500;", - "\t\t}", - "\t\t//ssc_free(geothermal);", - "};", - "", - "equations{'baseline_cost'} = define() {", - "\treturn ${geotherm.cost.plant_per_kW};", - "};", - "", - "equations{ 'system_use_recapitalization' } = define() {", - "\treturn 1; };", - "\t", - "", + "};\r", + "\r", + "equations{ 'total_indirect_cost' } = define() {\r", + "\treturn ${indirect_cost_calc}; \r", + "};\r", + "\r", + "equations{ 'total_installed_cost' } = define() {\r", + "\treturn ${total_installed_cost_calc};\r", + "};\r", + "\r", + "equations{ 'geotherm.cost.installed_per_capacity' } = define() {\r", + "\treturn ${installed_cost_per_kW_calc};\r", + "};\r", + "\r", + "// -----------------------------------------------\r", + "\r", + "/*", "equations{ '$MIMO$ ppi' } = define() {", - "\tppis = [[0.89055794,0.919504053,0.938721984,0.956747735,0.963614688,0.972293753,0.983166428,1,0.998426323,1.066285169,1.226514068,1.332856462,1.377682403,1.438149738,1.414735336,1.423366714,1.463996185,1.512970911,1.534763948,1.554792561,1.604464797,1.643961076,1.657698912,1.742987979,1.797,1.831855031,1.997587983,2.272575844,2.416319405,2.589564969],", - "\t\t[1.129319793,1.103090524,1.1087163,1.074084898,0.999853876,1.022283919,0.961569372,1,1.06517133,1.423905896,1.500474903,1.63534741,1.76276759,2.160444217,1.613209615,1.959815884,2.220208957,2.110396727,1.984949222,2.03492365,1.714285714,1.638913234,1.858019281,2.084136722,1.947,1.825966245,3.12752612,3.334864154,2.919009641,2.70942156],", - "\t\t[0.884018929,0.907470403,0.926181264,0.942518082,0.956851458,0.967823396,0.985395348,1,1.014829443,1.077774928,1.155295495,1.222766901,1.304818202,1.382893406,1.40355926,1.411450935,1.455548144,1.509649784,1.533757048,1.639031617,1.656479161,1.65317208,1.679672296,1.740780754,1.794,1.832151402,1.899909387,2.184450409,2.368629761,2.433393545],", - "\t\t[0.77985529,0.810695609,0.859015689,0.888566516,0.913317573,0.954043986,0.975857869,1,1.048105165,1.081631922,1.102335411,1.135826349,1.209434773,1.274983881,1.329751415,1.39193352,1.362346873,1.364746758,1.388351601,1.433483774,1.486242476,1.503869304,1.558039553,1.602,1.611,1.646034816,1.700479977,1.780739467,1.851246776,1.922184007],", - "\t\t[0.853374525,0.872338403,0.899382129,0.92404943,0.936264259,0.9503327,0.975903042,1,1.010646388,1.039876426,1.093203422,1.14168251,1.212975285,1.277851711,1.31411597,1.324192015,1.324572243,1.34871673,1.339163498,1.366539924,1.391899601,1.411294923,1.438106104,1.489446663,1.553,1.553,1.553,1.553,1.553,1.553],", - "\t\t[0.882749597,0.895883655,0.917874396,0.93458132,0.960396538,0.969303543,0.980072464,1,1.013285024,1.018820451,1.017562399,1.050221417,1.10668277,1.24511876,1.350392512,1.3403281,1.359752415,1.349889291,1.376811594,1.411835749,1.399154589,1.403046162,1.346947738,1.332125604,1.408,1.452294686,1.49086252,1.540966184,1.611654589,1.686461353],", - "\t\t[0.788589981,0.814564007,0.840955473,0.870640074,0.907606679,0.932560297,0.956864564,1,1.038450835,1.066280148,1.086827458,1.1283859,1.1682282,1.222402597,1.278710575,1.319851577,1.357374768,1.362152134,1.376994434,1.429313544,1.475,1.528333333,1.594444444,1.653,1.676,1.709230056,1.752272727,1.858333333,2.003333333,2.093888889],\r", - "\t\t[0.319286373,0.352814519,0.44078745,0.474007998,0.408182098,0.425099969,0.540449093,0.471239619,0.470624423,0.517379268,0.807751461,1.179637035,1.120885881,1.141802522,1.014764688,1,1.11319594,1.207320824,1.343586589,1.402952938,1.151953245,0.959704706,0.988926484,1.016302676,1.03,0.959092657,0.976696655,1.154758536,1.230655183,1.232054752]];", + "\tppis = [[0.890669720,0.919862622,0.938752147,0.957069262,0.963938180,0.972524327,0.983400114,1.000000000,0.998855180,1.066399542,1.226674299,1.333142530,1.377790498,1.438465942,1.414997138,1.423583286,1.464224385,1.513451631,1.535203205,1.555237550,1.604464797,1.643961076,1.657698912, 1.743,1.797,1.832,1.998,2.273],", + "\t\t[1.128834356,1.102541630,1.108676599,1.073619632,0.999123576,1.021910605,0.961437336,1.000000000,1.064855390,1.423312883,1.499561788,1.634531113,1.762489045,2.159509202,1.612620508,1.958808063,2.219106047,2.109553024,1.984224365,2.034180543,1.714285714,1.638913234,1.858019281,2.084,1.947,1.826,3.127,3.335],", + "\t\t[0.884044412,0.907406542,0.926150373,0.942470679,0.956807105,0.967657025,0.985381166,1.000000000,1.014742613,1.077732637,1.155135271,1.222672817,1.304587248,1.382668341,1.403383400,1.411178107,1.455344223,1.509492085,1.533628545,1.638936512,1.656479161,1.653172080,1.679672296,1.741, 1.794,1.832,1.900,2.184],", + "\t\t[0.779879622,0.810834050,0.859415305,0.888650043,0.913585555,0.954428203,0.975924334,1.000000000,1.048581255,1.081685297,1.102751505,1.136285469,1.210232158,1.275150473,1.329750645,1.392089424,1.362424764,1.365004299,1.388650043,1.433791917,1.486242476,1.503869304,1.558039553,1.602,1.611,1.647,1.701,1.781],", + "\t\t[0.853394181,0.872219053,0.899600685,0.924130063,0.936679977,0.950370793,0.976041072,1.000000000,1.010838562,1.039931546,1.093553908,1.142042213,1.213348545,1.278379920,1.314318311,1.324586423,1.324586423,1.349115801,1.339418140,1.366799772,1.391899601,1.411294923,1.438106104,1.489,1.553, 1.553, 1.553, 1.553],", + "\t\t[0.882850242,0.896135266,0.917874396,0.934782609,0.960144928,0.969202899,0.980072464,1.000000000,1.013285024,1.018719807,1.017512077,1.050120773,1.106884058,1.245169082,1.350241546,1.340579710,1.359903382,1.349637681,1.376811594,1.411835749,1.399154589,1.403046162,1.346947738,1.327974034,1.408,1.452,1.491,1.541],", + "\t\t[0.790555556,0.816666667,0.842222222,0.872777778,0.909444444,0.933333333,0.957777778,1.000000000,1.039444444,1.067222222,1.088888889,1.129444444,1.170000000,1.221666667,1.277777778,1.320000000,1.357777778,1.361666667,1.374444444,1.426666667,1.475000000,1.528333333,1.594444444,1.653,1.676,1.708,1.753,1.858],\r", + "\t\t[0.319,0.353,0.441,0.474,0.408,0.425,0.540,0.471,0.471,0.517,0.808,1.180,1.121,1.142,1.015,1.000,1.113,1.207,1.344,1.403,1.152,0.960,0.989,1.016,1.030,0.959,0.977,1.155]];", "\tppi_index = ${ppi_base_year};", "\t${hx_ppi} = ppis[0][ppi_index];\t", "\t${steel_ppi} = ppis[1][ppi_index];\t", @@ -12913,11 +12622,8 @@ "\t${construction_ppi} = ppis[6][ppi_index];\r", "\t${drilling_ppi} = ppis[7][ppi_index];\t", "};\r", - "\r", - "equations{'exploration_wells_production'} = define() \r", - "{\r", - "\treturn ${geotherm.cost.confirm_wells_num};\r", - "};", + "*/\r", + "", "", "", "\t\t", diff --git a/deploy/runtime/ui/Geothermal Drilling.json b/deploy/runtime/ui/Geothermal Drilling.json index b0bfc283e4..b291d2eae8 100644 --- a/deploy/runtime/ui/Geothermal Drilling.json +++ b/deploy/runtime/ui/Geothermal Drilling.json @@ -1676,6 +1676,19 @@ } }, "VarDatabase": { + "analysis_period": { + "Version": 4.0, + "Type": 1.0, + "Label": "", + "Units": "", + "Group": "", + "IndexLabels": "", + "Flags": 8.0, + "DefaultValue": 0.0, + "UIObject": "Default", + "sscVariableName": "", + "sscVariableValue": "" + }, "drilling_success_rate": { "Version": 4.0, "Type": 1.0, @@ -1913,20 +1926,22 @@ }, "Equations": [ "equations{ 'geotherm.cost.prod_req' } = define() {", - "\treturn ${num_wells_getem}; };", + "\treturn ${num_wells_calc};\r", + "};", "\t", "equations{ 'geotherm.cost.confirm_wells_num' } = define() {", - "\treturn ${geotherm.cost.conf_num_wells} * (${geotherm.cost.confirm_wells_percent}/100); };", - "\t", - "equations{ 'geotherm.cost.prod_wells_drilled' } = define() {", - "\treturn ( ${geotherm.cost.prod_req} - ${geotherm.cost.confirm_wells_num} ); };", + "\treturn ${num_confirm_wells_to_production_calc}; \r", + "};\r", + "\t\t", + "//equations{ 'geotherm.cost.prod_wells_drilled' } = define() {", + "//\treturn ( ${geotherm.cost.prod_req} - ${geotherm.cost.confirm_wells_num} ); };", "\t", - "equations{ 'geotherm.cost.inj_wells_drilled' } = define() {", - "\treturn ( ${num_wells_getem_inj} ); };\r", + "//equations{ 'geotherm.cost.inj_wells_drilled' } = define() {", + "//\treturn ( ${num_wells_getem_inj} ); };\r", "\t\r", "equations{'exploration_wells_production'} = define() \r", "{\r", - "\treturn ${geotherm.cost.confirm_wells_num};\r", + "\treturn ${num_confirm_wells_to_production_calc};\r", "};\r", "" ], diff --git a/deploy/runtime/ui/Geothermal OM Costs.json b/deploy/runtime/ui/Geothermal OM Costs.json index 5e020fd665..64e287324d 100644 --- a/deploy/runtime/ui/Geothermal OM Costs.json +++ b/deploy/runtime/ui/Geothermal OM Costs.json @@ -93,164 +93,10 @@ "sscVariableValue": "" } }, - "Equations": [ - "equations{'total_getem_om_cost'} = define() {\r", - "\r", - "\tgeothermal = ssc_create();\t\r", - "\tssc_var( geothermal, 'ui_calculations_only', 0);\r", - "\tssc_var( geothermal, 'adjust_constant', 0.0);\r", - "\tssc_var( geothermal, 'file_name', ${file_name});\r", - "\tssc_var( geothermal, 'resource_potential', ${resource_potential});\r", - "\tssc_var( geothermal, 'resource_type', ${resource_type} ); // INTEGER\r", - "\tif (${resource_temp} < 374) {\r", - "\t\tssc_var( geothermal, 'resource_temp', ${resource_temp} );\r", - "\t}\r", - "\telse {\r", - "\t\tssc_var( geothermal, 'resource_temp', ${resource_temp_old} );\r", - "\t}\r", - "\tssc_var( geothermal, 'resource_depth', ${resource_depth} );\r", - "\tssc_var( geothermal, 'dt_prod_well', ${dt_prod_well} );\t\r", - "\tssc_var( geothermal, 'prod_well_choice', ${prod_well_choice} );\t\r", - "\tssc_var( geothermal, 'allow_reservoir_replacements', ${allow_reservoir_replacements});\t\t\t\t\t\t\t\t\t\t\t\r", - "\t// Other inputs\t\t\t\t\t\t\t \r", - "\tssc_var( geothermal, 'geothermal_analysis_period', ${geothermal_analysis_period} ); // INTEGER\r", - "\tssc_var( geothermal, 'model_choice', ${model_choice} ); // INTEGER\r", - "\tssc_var( geothermal, 'geotherm.cost.inj_prod_well_ratio', ${geotherm.cost.inj_prod_well_ratio});\r", - "\tssc_var( geothermal, 'drilling_success_rate', ${drilling_success_rate});\r", - "\tssc_var( geothermal, 'stim_success_rate', ${stim_success_rate});\r", - "\tssc_var( geothermal, 'failed_prod_flow_ratio', ${failed_prod_flow_ratio});\r", - "\t// geothermal plant and equipment\t\t \r", - "\tssc_var( geothermal, 'nameplate', ${nameplate} );\r", - "\tssc_var( geothermal, 'analysis_type', ${analysis_type} ); //INTEGER\r", - "\tssc_var( geothermal, 'num_wells', ${num_wells} );\r", - "\tssc_var( geothermal, 'num_wells_getem', ${num_wells_getem});\r", - "\tssc_var( geothermal, 'conversion_type', ${conversion_type} ); // INTEGER\r", - "\tssc_var( geothermal, 'ppi_base_year', ${ppi_base_year} );\r", - "\tssc_var( geothermal, 'plant_efficiency_input', ${plant_efficiency_input} );\r", - "\tssc_var( geothermal, 'conversion_subtype', ${conversion_subtype} ); // INTEGER\r", - "\tif (${resource_type} == 0)\r", - "\t\tssc_var( geothermal, 'decline_type', 0 ); // INTEGER\r", - "\telse if (${conversion_type} == 0) \r", - "\t\tssc_var( geothermal, 'decline_type', ${decline_type});\r", - "\telse \r", - "\t\tssc_var( geothermal, 'decline_type', 0);\r", - "\tssc_var( geothermal, 'temp_decline_rate', ${temp_decline_rate} );\r", - "\tssc_var( geothermal, 'temp_decline_max', ${temp_decline_max} );\r", - "\tssc_var( geothermal, 'wet_bulb_temp', ${wet_bulb_temp} );\r", - "\tssc_var( geothermal, 'use_weather_file_conditions', ${use_weather_file_conditions} );\r", - "\tssc_var( geothermal, 'ambient_pressure', ${ambient_pressure} );\r", - "\tssc_var( geothermal, 'well_flow_rate', ${well_flow_rate} );\r", - "\tssc_var( geothermal, 'pump_efficiency', ${pump_efficiency} );\r", - "\tssc_var( geothermal, 'delta_pressure_equip', ${delta_pressure_equip} );\r", - "\tssc_var( geothermal, 'excess_pressure_pump', ${excess_pressure_pump} );\r", - "\tssc_var( geothermal, 'geotherm.cost.inj_cost_curve_welltype', ${geotherm.cost.inj_cost_curve_welltype} );\r", - "\tssc_var( geothermal, 'geotherm.cost.prod_cost_curve_welltype', ${geotherm.cost.prod_cost_curve_welltype} );\r", - "\tssc_var( geothermal, 'geotherm.cost.inj_cost_curve_welldiam', ${geotherm.cost.inj_cost_curve_welldiam} );\r", - "\tssc_var( geothermal, 'geotherm.cost.prod_cost_curve_welldiam', ${geotherm.cost.prod_cost_curve_welldiam} );\r", - "\r", - "\tssc_var( geothermal, 'design_temp', ${design_temp} );\r", - "\tssc_var( geothermal, 'specify_pump_work', ${specify_pump_work} ); // INTEGER\r", - "\tssc_var( geothermal, 'specified_pump_work_amount', ${specified_pump_work_amount} );\r", - "\r", - "\t// detailed geothermal inputs\r", - "\tssc_var( geothermal, 'rock_thermal_conductivity', ${rock_thermal_conductivity} );\r", - "\tssc_var( geothermal, 'rock_specific_heat', ${rock_specific_heat} );\r", - "\tssc_var( geothermal, 'rock_density', ${rock_density} );\r", - "\tif (${resource_type} != 1 && ${reservoir_pressure_change_type} == 1) {\r", - "\t\tssc_var( geothermal, 'reservoir_pressure_change_type', 0 ); // INTEGER\r", - "\t\tmsgbox('Fracture flow calculations can only be used with EGS resource. Please check the inputs on the Geothermal Resource page. The enter change in reservoir option is being used currently.');\r", - "\t}\r", - "\telse \r", - "\t\tssc_var( geothermal, 'reservoir_pressure_change_type', ${reservoir_pressure_change_type} ); // INTEGER\r", - "\tssc_var( geothermal, 'reservoir_pressure_change', ${reservoir_pressure_change} );\r", - "\tssc_var( geothermal, 'injectivity_index', ${injectivity_index} );\r", - "\tssc_var( geothermal, 'exploration_wells_production', ${geotherm.cost.confirm_wells_num} );\r", - "\tssc_var( geothermal, 'reservoir_width', ${reservoir_width} );\r", - "\tssc_var( geothermal, 'reservoir_height', ${reservoir_height} );\r", - "\tssc_var( geothermal, 'reservoir_permeability', ${reservoir_permeability} );\t\t\r", - "\tssc_var( geothermal, 'inj_prod_well_distance', ${inj_prod_well_distance} );\t\t\r", - "\tssc_var( geothermal, 'subsurface_water_loss', ${subsurface_water_loss} ); \t\t\r", - "\tssc_var( geothermal, 'fracture_aperature', ${fracture_aperature} );\r", - "\tssc_var( geothermal, 'fracture_width', ${fracture_width} );\r", - "\tssc_var( geothermal, 'fracture_length', ${fracture_length} );\r", - "\tssc_var( geothermal, 'fracture_spacing', ${fracture_spacing} );\r", - "\tssc_var( geothermal, 'num_fractures', ${num_fractures} ); // INTEGER\r", - "\tssc_var( geothermal, 'fracture_angle', ${fracture_angle} );\r", - "\tssc_var( geothermal, 'reservoir_model_inputs', ${reservoir_model_inputs} );\r", - "\r", - "\t// temp input for testing\r", - "\tssc_var( geothermal, 'hr_pl_nlev', ${hr_pl_nlev} ); // INTEGER\r", - "\t\r", - "\t//power block parameters needed but not on power block SAM input page\r", - "\tssc_var( geothermal, 'T_htf_cold_ref', ${T_htf_cold_ref});\r", - "\tssc_var( geothermal, 'T_htf_hot_ref', ${T_htf_hot_ref});\r", - "\tssc_var( geothermal, 'HTF', ${HTF});\r", - "\t\r", - "\t//power block input parameters\r", - "\tssc_var( geothermal, 'P_boil', ${P_boil});\r", - "\tssc_var( geothermal, 'eta_ref', ${eta_ref});\r", - "\tssc_var( geothermal, 'q_sby_frac', ${q_sby_frac});\r", - "\tssc_var( geothermal, 'startup_frac', ${startup_frac});\r", - "\tssc_var( geothermal, 'startup_time', ${startup_time});\r", - "\tssc_var( geothermal, 'pb_bd_frac', ${pb_bd_frac});\r", - "\tssc_var( geothermal, 'T_amb_des', ${T_amb_des});\r", - "\tssc_var( geothermal, 'CT', ${CT});\r", - "\tssc_var( geothermal, 'dT_cw_ref', ${dT_cw_ref});\r", - "\tssc_var( geothermal, 'T_approach', ${T_approach});\r", - "\tssc_var( geothermal, 'T_ITD_des', ${T_ITD_des});\r", - "\tssc_var( geothermal, 'P_cond_ratio', ${P_cond_ratio});\r", - "\tssc_var( geothermal, 'P_cond_min', ${P_cond_min});\r", - "\tssc_var( geothermal, 'hc_ctl1', ${hc_ctl1});\r", - "\tssc_var( geothermal, 'hc_ctl2', ${hc_ctl2});\r", - "\tssc_var( geothermal, 'hc_ctl3', ${hc_ctl3});\r", - "\tssc_var( geothermal, 'hc_ctl4', ${hc_ctl4});\r", - "\tssc_var( geothermal, 'hc_ctl5', ${hc_ctl5});\r", - "\tssc_var( geothermal, 'hc_ctl6', ${hc_ctl6});\r", - "\tssc_var( geothermal, 'hc_ctl7', ${hc_ctl7});\r", - "\tssc_var( geothermal, 'hc_ctl8', ${hc_ctl8});\r", - "\tssc_var( geothermal, 'hc_ctl9', ${hc_ctl9});\r", - "\tssc_var( geothermal, 'hybrid_dispatch_schedule', ${hybrid_dispatch_schedule});\r", - "\tresult = ssc_exec(geothermal, 'geothermal');\r", - "\tif ( typeof(result) != 'number' && result != 0 )\r", - "\t{\r", - "\t\tmsgbox('geothermal mimo error, result =' + result); \r", - "\t}\r", - "\tif (ssc_exec(geothermal, 'geothermal') == 0) \r", - "\t{\r", - "\t\tdata.gross_output = ${gross_output};\r", - "\t\tdata.conversion_type = ${conversion_type};\r", - "\t\tif (${geotherm.cost.plant_auto_estimate} == 1) {\r", - "\t\t\tdata.baseline_cost = ${geotherm.cost.plant_per_kW};\r", - "\t\t}\r", - "\t\telse {\r", - "\t\t\tdata.baseline_cost = ${geotherm.cost.plant_per_kW_input};\r", - "\t\t}\r", - "\t\tdata.ppi_base_year = ${ppi_base_year};\r", - "\t\tdata.cwflow = ssc_var(geothermal, \"cwflow\");\r", - "\t\tdata.drilling_cost = ${geotherm.cost.drilling.amount};\r", - "\t\tdata.field_gathering_system_cost = ${geotherm.cost.total_surface_equipment_cost};\r", - "\t\tdata.GF_flowrate = ssc_var(geothermal, \"GF_flowrate\");\r", - "\t\tdata.num_wells = ${geotherm.cost.prod_req};\r", - "\t\tdata.water_loss = ${subsurface_water_loss};\r", - "\t\tdata.total_installed_cost = ${total_installed_cost};\r", - "\t\tdata.pump_only_cost = ${geotherm.cost.pump_only_cost};\r", - "\t\tdata.pump_cost_install = ${geotherm.cost.pump_cost_install};\r", - "\t\tdata.pump_depth = ${pump_depth};\r", - "\t\tdata.pump_type = 0; //0 - Lineshaft, 1 - Submersible\r", - "\t\tsuccess = ssc_eqn('getem_om_cost_calc', data);\r", - "\t\treturn data.total_getem_om_cost;\r", - "\t}\r", - "\telse {\r", - "\t\treturn -50;\r", - "\t}\r", - "\t\r", - "};\r", - "\r", - "" - ], + "Equations": [], "Callbacks": [ "on_change{'getem_om_cost_btn'} = define() {\r", - "\tvalue('om_fixed', [value('total_getem_om_cost')]);\r", + "\tvalue('om_fixed', [value('total_getem_om_cost_calc')]);\r", "\trefresh();\r", "};" ] diff --git a/deploy/runtime/ui/Geothermal Plant and Equipment.json b/deploy/runtime/ui/Geothermal Plant and Equipment.json index e1dcdde7b2..9cf7710d8d 100644 --- a/deploy/runtime/ui/Geothermal Plant and Equipment.json +++ b/deploy/runtime/ui/Geothermal Plant and Equipment.json @@ -382,7 +382,7 @@ }, "Caption": { "Type": 5.0, - "String": "kW" + "String": "kWe" }, "TextColour": { "Type": 4.0, @@ -1943,7 +1943,7 @@ "ObjectProperties": { "Name": { "Type": 5.0, - "String": "gross_output" + "String": "gross_output_ui" }, "X": { "Type": 3.0, @@ -2995,6 +2995,89 @@ } } }, + "Numeric": { + "Visible": 1.0, + "ObjectProperties": { + "Name": { + "Type": 5.0, + "String": "system_capacity" + }, + "X": { + "Type": 3.0, + "Integer": 651.0 + }, + "Y": { + "Type": 3.0, + "Integer": 129.0 + }, + "Width": { + "Type": 3.0, + "Integer": 99.0 + }, + "Height": { + "Type": 3.0, + "Integer": 21.0 + }, + "Tool Tip": { + "Type": 5.0, + "String": "" + }, + "Value": { + "Type": 1.0, + "Double": 0.0 + }, + "Mode": { + "Type": 3.0, + "Integer": 1.0 + }, + "Format": { + "Type": 3.0, + "Integer": 0.0 + }, + "Decimals": { + "Type": 3.0, + "Integer": 3.0 + }, + "Prefix": { + "Type": 5.0, + "String": "" + }, + "Suffix": { + "Type": 5.0, + "String": "" + }, + "ThousandsSep": { + "Type": 2.0, + "Boolean": 1.0 + }, + "Editable": { + "Type": 2.0, + "Boolean": 1.0 + }, + "ForeColour": { + "Type": 4.0, + "Color": { + "Red": 0.0, + "Green": 0.0, + "Blue": 0.0, + "Alpha": 255.0 + } + }, + "BackColour": { + "Type": 4.0, + "Color": { + "Red": 255.0, + "Green": 255.0, + "Blue": 255.0, + "Alpha": 255.0 + } + }, + "TabOrder": { + "Type": 3.0, + "Integer": -1.0 + } + } + }, "Numeric": { "Visible": 1.0, "ObjectProperties": { @@ -3725,7 +3808,7 @@ "Version": 4.0, "Type": 1.0, "Label": "Net Plant Output", - "Units": "MW", + "Units": "MWe", "Group": "Geothermal Plant and Equipment", "IndexLabels": "", "Flags": 8.0, @@ -3747,37 +3830,11 @@ "sscVariableName": " ", "sscVariableValue": "" }, - "geotherm.total_flow_gpm": { - "Version": 4.0, - "Type": 1.0, - "Label": "Total Flow Rate", - "Units": "gpm", - "Group": "Geothermal Plant and Equipment", - "IndexLabels": "", - "Flags": 8.0, - "DefaultValue": 0.0, - "UIObject": "Default", - "sscVariableName": " ", - "sscVariableValue": "" - }, - "geotherm.total_flow_kg_per_s": { - "Version": 4.0, - "Type": 1.0, - "Label": "Total Flow Rate", - "Units": "kg/s", - "Group": "Geothermal Plant and Equipment", - "IndexLabels": "", - "Flags": 8.0, - "DefaultValue": 0.0, - "UIObject": "Default", - "sscVariableName": " ", - "sscVariableValue": "" - }, - "gross_output": { + "gross_output_ui": { "Version": 4.0, "Type": 1.0, "Label": "Gross Plant Output", - "Units": "MW", + "Units": "MWe", "Group": "Geothermal Plant and Equipment", "IndexLabels": "", "Flags": 8.0, @@ -3998,7 +4055,7 @@ "Version": 4.0, "Type": 1.0, "Label": "Nameplate", - "Units": "kW", + "Units": "kWe", "Group": "Geothermal Plant and Equipment", "IndexLabels": "", "Flags": 8.0, @@ -4033,19 +4090,6 @@ "sscVariableName": " ", "sscVariableValue": "" }, - "ui_calculations_only": { - "Version": 4.0, - "Type": 1.0, - "Label": "Use UI calculations only", - "Units": "0/1", - "Group": "Geothermal Plant and Equipment", - "IndexLabels": "0", - "Flags": 8.0, - "DefaultValue": 0.0, - "UIObject": "Default", - "sscVariableName": " ", - "sscVariableValue": "" - }, "use_weather_file_conditions": { "Version": 4.0, "Type": 1.0, @@ -4126,145 +4170,83 @@ } }, "Equations": [ - "", - "equations{ 'geotherm.total_flow_kg_per_s' } = define() {", - "\treturn ${well_flow_rate} * ${num_wells_getem};", - "};", - "", - "equations{ 'geotherm.total_flow_gpm' } = define() {", - "\treturn ${geotherm.total_flow_kg_per_s} * 15.87;", - "};", - "", - "equations{ 'geotherm.net_output' } = define() {", - "\treturn ${gross_output} - ${pump_work};", - "};", - "", - "equations{ 'design_temp' } = define() {", - "\treturn ${resource_temp};", - "};", - "", - "equations{ 'ui_calculations_only' } = define() {", - "\treturn 0; // for a normal model run, this should be zero", - "};", - "", - "equations{ '$MIMO$ geothermal' } = define() {", - " obj = ssc_create();", - "\tssc_var( obj, 'ui_calculations_only', 1 ); // set to 1 so model only does UI calculations (much faster)", - "\tssc_var( obj, 'system_capacity', ${nameplate} );", - "//\tssc_var( obj, 'adjust:constant', 0.0 );", - "//\tssc_var( obj, 'adjust', {\"constant\" = 0.0} );", - "\tssc_var( obj, 'adjust_constant', 0.0 );\r", - "\tssc_var( obj, 'allow_reservoir_replacements', ${allow_reservoir_replacements});", - "\tssc_var( obj, 'resource_type', ${resource_type} ); // INTEGER", - "\tssc_var( obj, 'resource_temp', ${resource_temp} );", - "\tssc_var( obj, 'resource_depth', ${resource_depth} );", - "\tssc_var( obj, 'geotherm.cost.inj_prod_well_ratio', ${geotherm.cost.inj_prod_well_ratio});\r", - "\tssc_var( obj, 'drilling_success_rate', ${drilling_success_rate});\r", - "\tssc_var( obj, 'stim_success_rate', ${stim_success_rate});\r", - "\tssc_var( obj, 'failed_prod_flow_ratio', ${failed_prod_flow_ratio});\r", + "// -- Set display values from outputs of ssc auto exec\r", + "equations{ 'gross_output_ui' } = define() {\r", + "\treturn ${gross_output_calc};\r", + "};\r", "\r", - "\tssc_var( obj, 'dt_prod_well', ${dt_prod_well} );", - "\tssc_var( obj, 'prod_well_choice', ${prod_well_choice} );\t\t\t\t\t\t\t\t\t\t ", - "\t// Other inputs\t\t\t\t\t\t\t ", - "\tssc_var( obj, 'geothermal_analysis_period', ${geothermal_analysis_period} ); // INTEGER", - "\tssc_var( obj, 'model_choice', ${model_choice} ); // INTEGER", - "", - "\t// geothermal plant and equipment\t\t ", - "\tssc_var( obj, 'nameplate', ${nameplate} );", - "\tssc_var( obj, 'analysis_type', ${analysis_type} ); //INTEGER", - "\tssc_var( obj, 'num_wells', ${num_wells} );", - "\tssc_var( obj, 'conversion_type', ${conversion_type} ); // INTEGER", - "\tssc_var( obj, 'plant_efficiency_input', ${plant_efficiency_input} );", - "\tssc_var( obj, 'conversion_subtype', ${conversion_subtype} ); // INTEGER", - "\tif (${resource_type} == 0)", - "\t\tssc_var( obj, 'decline_type', 0 ); // INTEGER", - "\telse if (${conversion_type} == 0) ", - "\t\tssc_var( obj, 'decline_type', ${decline_type});", - "\telse ", - "\t\tssc_var( obj, 'decline_type', 0);", - "\tssc_var( obj, 'temp_decline_rate', ${temp_decline_rate} );", - "\tssc_var( obj, 'temp_decline_max', ${temp_decline_max} );", - "\tssc_var( obj, 'wet_bulb_temp', ${wet_bulb_temp} );\r", - "\tssc_var( obj, 'use_weather_file_conditions', ${use_weather_file_conditions});", - "\tssc_var( obj, 'ambient_pressure', ${ambient_pressure} );", - "\tssc_var( obj, 'well_flow_rate', ${well_flow_rate} );", - "\tssc_var( obj, 'pump_efficiency', ${pump_efficiency} );", - "\tssc_var( obj, 'delta_pressure_equip', ${delta_pressure_equip} );", - "\tssc_var( obj, 'excess_pressure_pump', ${excess_pressure_pump} );", - "\tssc_var( obj, 'geotherm.cost.inj_cost_curve_welltype', ${geotherm.cost.inj_cost_curve_welltype} );", - "\tssc_var( obj, 'geotherm.cost.prod_cost_curve_welltype', ${geotherm.cost.prod_cost_curve_welltype} );", - "\tssc_var( obj, 'geotherm.cost.inj_cost_curve_welldiam', ${geotherm.cost.inj_cost_curve_welldiam} );\r", - "\tssc_var( obj, 'geotherm.cost.prod_cost_curve_welldiam', ${geotherm.cost.prod_cost_curve_welldiam} );\r", + "equations{ 'geotherm.plant_efficiency_used' } = define() {\r", + "\treturn ${plant_brine_eff_calc};\r", + "};\r", "\r", - "", - "\tssc_var( obj, 'design_temp', ${design_temp} );", - "\tssc_var( obj, 'specify_pump_work', ${specify_pump_work} ); // INTEGER", - "\tssc_var( obj, 'specified_pump_work_amount', ${specified_pump_work_amount} );", - "", - "\t// detailed geothermal inputs", - "\tssc_var( obj, 'rock_thermal_conductivity', ${rock_thermal_conductivity} );", - "\tssc_var( obj, 'rock_specific_heat', ${rock_specific_heat} );", - "\tssc_var( obj, 'rock_density', ${rock_density} );", - "\tif (${resource_type} != 1 && (${reservoir_pressure_change_type} == 1 || ${reservoir_pressure_change_type} == 3)) {", - "\t\tssc_var( obj, 'reservoir_pressure_change_type', 0 ); // INTEGER", - "\t\t//msgbox('Fracture flow calculations can only be used with EGS resource. Please check the inputs on the Geothermal Resource page. The enter change in reservoir option is being used currently.');", - "\t}", - "\telse ", - "\t\tssc_var( obj, 'reservoir_pressure_change_type', ${reservoir_pressure_change_type} ); // INTEGER", - "\tssc_var( obj, 'reservoir_pressure_change', ${reservoir_pressure_change} );\r", - "\tssc_var( obj, 'injectivity_index', ${injectivity_index} );\r", - "\tssc_var( obj, 'exploration_wells_production', ${geotherm.cost.confirm_wells_num} );", - "\tssc_var( obj, 'reservoir_width', ${reservoir_width} );", - "\tssc_var( obj, 'reservoir_height', ${reservoir_height} );", - "\tssc_var( obj, 'reservoir_permeability', ${reservoir_permeability} );\t\t", - "\tssc_var( obj, 'inj_prod_well_distance', ${inj_prod_well_distance} );\t\t", - "\tssc_var( obj, 'subsurface_water_loss', ${subsurface_water_loss} ); \t\t", - "\tssc_var( obj, 'fracture_aperature', ${fracture_aperature} );", - "\tssc_var( obj, 'fracture_width', ${fracture_width} );", - "\tssc_var( obj, 'fracture_length', ${fracture_length} );", - "\tssc_var( obj, 'fracture_spacing', ${fracture_spacing} );", - "\tssc_var( obj, 'num_fractures', ${num_fractures} ); // INTEGER", - "\tssc_var( obj, 'fracture_angle', ${fracture_angle} );", - "\tssc_var( obj, 'reservoir_model_inputs', ${reservoir_model_inputs} );", - "", - "\t// temp input for testing", - "\tssc_var( obj, 'hr_pl_nlev', ${hr_pl_nlev} ); // INTEGER", - "", - " result = ssc_exec( obj, 'geothermal' );", - " // use for diagnostics - if it doesn't seem to run, 'result' should have error", - "\tif ( typeof(result) != 'number' && result != 0 )", - "\t{", - "\t\tmsgbox('geothermal mimo error, result =' + result); ", - "\t}", - " ", - " ${num_wells_getem} = ssc_var( obj, 'num_wells_getem_output');", - " ${num_wells_getem_inj} = ssc_var( obj, 'num_wells_getem_inj');\r", - " ${geotherm.cost.prod_wells_drilled} = ssc_var( obj, 'num_wells_getem_prod_drilled');\r", - " ${geotherm.cost.inj_wells_drilled} = ssc_var( obj, 'num_wells_getem_inj_drilled');", - " ${geotherm.plant_efficiency_used} = ssc_var( obj, 'plant_brine_eff');\r", - " failed_prod = ssc_var( obj, 'num_wells_getem_prod_failed');\r", - " //${geotherm.cost.surf_num_wells} = ${num_wells_getem} + ${geotherm.cost.inj_wells_drilled} + failed_prod;", - " ${pump_work_watthr_lb} = ssc_var( obj, 'pump_watthr_per_lb');", - " ${pumpwork_prod} = ssc_var( obj, 'pumpwork_prod');", - " ${pumpwork_inj} = ssc_var( obj, 'pumpwork_inj');", - " ${gross_output} = ssc_var(obj, 'gross_output');", - " ${pump_depth} = ssc_var(obj, 'pump_depth_ft');", - " ${inj_pump_hp} = ssc_var(obj, 'inj_pump_hp');", - " if (${specify_pump_work} == 0)", - "\t\t${pump_work} = ssc_var(obj, 'pump_work');", - "\telse", - "\t\t${pump_work} = ${specified_pump_work_amount};", - " //${pump_size_hp} = ssc_var(obj, 'pump_hp');", - "", - " ${geotherm.delta_pressure_reservoir} = ssc_var(obj, 'reservoir_pressure');", - " ${geotherm.avg_reservoir_temp} = ssc_var(obj, 'reservoir_avg_temp');", - " ${geotherm.bottom_hole_pressure} = ssc_var(obj, 'bottom_hole_pressure');", - "", - "\tssc_free( obj );", - "\t", - "\treturn 0;", + "equations{ 'num_wells_getem' } = define() {\r", + "\treturn ${num_wells_calc};\r", + "};\r", + "\r", + "equations{ 'num_wells_getem_inj' } = define() {\r", + "\treturn ${num_wells_getem_inj_calc};\r", + "};\r", + "\r", + "equations{ 'geotherm.cost.prod_wells_drilled' } = define() {\r", + "\treturn ${num_wells_getem_prod_drilled_calc};\r", + "};\r", + "\r", + "equations{ 'geotherm.cost.inj_wells_drilled' } = define() {\r", + "\treturn ${num_wells_getem_inj_drilled_calc};\r", + "};\r", + "\r", + "equations{ 'pump_work_watthr_lb' } = define() {\r", + "\treturn ${pump_watthr_per_lb_calc};\r", + "};\r", + "\r", + "equations{ 'pumpwork_prod' } = define() {\r", + "\treturn ${pumpwork_prod_calc};\r", + "};\r", + "\r", + "equations{ 'pump_size_hp' } = define() {\r", + "\treturn ${pump_size_hp_calc}; };\r", + "\r", + "equations{ 'pumpwork_inj' } = define() {\r", + "\treturn ${pumpwork_inj_calc};\r", "};\r", "\r", + "equations{ 'inj_pump_hp' } = define() {\r", + "\treturn ${inj_pump_hp_calc};\r", + "};\r", + "\r", + "equations{ 'pump_work' } = define() {\r", + "\treturn ${pump_work_calc};\r", + "};\r", + "\r", + "equations{ 'geotherm.delta_pressure_reservoir' } = define(){\r", + "\treturn ${reservoir_pressure_calc};\r", + "};\r", + "\r", + "equations{ 'geotherm.avg_reservoir_temp' } = define() {\r", + "\treturn ${reservoir_avg_temp_calc};\r", + "};\r", + "\r", + "equations{ 'geotherm.bottom_hole_pressure' } = define() {\r", + "\treturn ${bottom_hole_pressure_calc};\r", + "};\r", + "\r", + "equations{ 'geotherm.net_output' } = define() {\r", + "\treturn ${net_plant_output_calc}; // ${gross_output_calc} - ${pump_work};\r", + "};\r", + "\r", + "equations{ 'design_temp' } = define() {\r", + "\treturn ${design_temp_calc};\r", + "};\r", + "\r", + "equations{ 'system_capacity' } = define() {\r", + "\treturn ${system_capacity_calc}; }; //${gross_output_calc}*1000; }; // MW to kW\r", + "\r", + "equations{ 'pump_depth' } = define() {\r", + "\treturn ${pump_depth_ft_calc};\r", + "};\r", + "\r", + "// ----------------------------------------\r", + "", "equations{ 'wet_bulb_temp_wf'} = define() {\r", "\tann_twet = nan();\r", "\tif (file_exists(${solar_resource_file}))\r", @@ -4306,13 +4288,7 @@ "\t}\r", "};", "", - "equations{ 'system_capacity' } = define() {", - "\treturn ${gross_output}*1000;}; // MW to kW", - "//\treturn ${geotherm.net_output}*1000;}; // MW to kW > 100% with net output", - "", - "equations{ 'pump_size_hp' } = define() {", - "\treturn ${pumpwork_prod} / (0.7457 * 1000) * ${well_flow_rate} * 7936.64;", - "};" + "" ], "Callbacks": [ "function update_controls()\r", diff --git a/deploy/runtime/ui/Geothermal Power Block.json b/deploy/runtime/ui/Geothermal Power Block.json index 067140897b..b2efbbb8e2 100644 --- a/deploy/runtime/ui/Geothermal Power Block.json +++ b/deploy/runtime/ui/Geothermal Power Block.json @@ -2718,19 +2718,6 @@ "sscVariableName": "", "sscVariableValue": "" }, - "HTF": { - "Version": 4.0, - "Type": 1.0, - "Label": "HTF", - "Units": " ", - "Group": "Geothermal Power Block", - "IndexLabels": "", - "Flags": 8.0, - "DefaultValue": 3.0, - "UIObject": "Default", - "sscVariableName": "", - "sscVariableValue": "" - }, "P_boil": { "Version": 4.0, "Type": 1.0, @@ -2848,21 +2835,6 @@ "sscVariableName": "", "sscVariableValue": "" }, - "degradation": { - "Version": 4.0, - "Type": 2.0, - "Label": " ", - "Units": " ", - "Group": "Geothermal Power Block", - "IndexLabels": "", - "Flags": 8.0, - "DefaultValue": [ - 0.0 - ], - "UIObject": "Default", - "sscVariableName": "", - "sscVariableValue": "" - }, "eta_ref": { "Version": 4.0, "Type": 1.0, @@ -2902,19 +2874,6 @@ "sscVariableName": "", "sscVariableValue": "" }, - "geothermal_analysis_period": { - "Version": 4.0, - "Type": 1.0, - "Label": " ", - "Units": " ", - "Group": "Geothermal Power Block", - "IndexLabels": "", - "Flags": 8.0, - "DefaultValue": 30.0, - "UIObject": "Default", - "sscVariableName": "", - "sscVariableValue": "" - }, "hc_ctl1": { "Version": 4.0, "Type": 1.0, @@ -3139,39 +3098,18 @@ }, "Equations": [ "equations{ 'T_htf_hot_ref' } = define() {", - "\treturn ${design_temp};", + "\treturn ${design_temp_calc};", "};", "", "equations{ 'CT' } = define() {", - "\treturn ${geopowerblock.pwrb.condenser_type}+1; };", - "", - "equations{ 'geothermal_analysis_period' } = define() {", - "\t", - "\tif ((financing() == \"None\") || (financing() == \"LCOE Calculator\"))", - "\t{", - "\t\treturn 30;", - "\t}", - "\telse", - "\t{", - "\t\treturn ${analysis_period};", - "\t}", - "\t", - "};", - "", - "equations{ 'HTF' } = define() {", - "\treturn 3;", - "};", - "", - "equations{ 'degradation' } = define() {", - "\treturn 0; };", - "/*", - "equations{ 'system_use_lifetime_output' } = define() {", - "\t// if system_use_lifetime_output = 1, grid compute module expects analysis_period input, which is not available without a financial model", - "\tif ( financing() == 'None' || financing() == 'LCOE Calculator' )", - "\t{ return 0; } ", - "\telse", - "\t{ return 1; }", - "};*/\t" + "\treturn ${geopowerblock.pwrb.condenser_type}+1;\r", + "};\r", + "\r", + "// This value should always be = 1 for SAM geothermal simulations\r", + "// However, want to keep option in the cmod\r", + "equations{ 'system_use_lifetime_output' } = define() {\r", + "\treturn 1;\r", + "};" ], "Callbacks": [ "function update_hybrid_dispatch_inputs() {", diff --git a/deploy/runtime/ui/Geothermal Resource.json b/deploy/runtime/ui/Geothermal Resource.json index d0e2b61ad0..d79c45cb12 100644 --- a/deploy/runtime/ui/Geothermal Resource.json +++ b/deploy/runtime/ui/Geothermal Resource.json @@ -3551,6 +3551,9 @@ } }, "Equations": [ + "// ---------------------------------\r", + "// only use these variables as UI displays\r", + "// do NOT use them as cmod inputs\r", "equations{ 'geotherm.delta_pressure_reservoirBar' } = define() {", "\treturn ${geotherm.delta_pressure_reservoir}/14.50377373066; };", "", @@ -3559,7 +3562,8 @@ "", "equations{ 'geotherm.avg_reservoir_tempF' } = define() {", "\treturn (${geotherm.avg_reservoir_temp}*9/5)+32; };", - "", + "// ------------------------------------\r", + "// ------------------------------------", "" ], "Callbacks": [ diff --git a/deploy/runtime/ui/Geothermal System Design No Fin.json b/deploy/runtime/ui/Geothermal System Design No Fin.json new file mode 100644 index 0000000000..cf4ba52c50 --- /dev/null +++ b/deploy/runtime/ui/Geothermal System Design No Fin.json @@ -0,0 +1,1451 @@ +{ + "Name": "Geothermal System Design No Fin", + "Width": 824.0, + "Height": 184.0, + "FormObjects": { + "Numeric": { + "Visible": 1.0, + "ObjectProperties": { + "Name": { + "Type": 5.0, + "String": "construction_financing_cost_calc" + }, + "X": { + "Type": 3.0, + "Integer": 186.0 + }, + "Y": { + "Type": 3.0, + "Integer": 42.0 + }, + "Width": { + "Type": 3.0, + "Integer": 90.0 + }, + "Height": { + "Type": 3.0, + "Integer": 24.0 + }, + "Tool Tip": { + "Type": 5.0, + "String": "" + }, + "Value": { + "Type": 1.0, + "Double": 0.0 + }, + "Mode": { + "Type": 3.0, + "Integer": 1.0 + }, + "Format": { + "Type": 3.0, + "Integer": 0.0 + }, + "Decimals": { + "Type": 3.0, + "Integer": 3.0 + }, + "Prefix": { + "Type": 5.0, + "String": "" + }, + "Suffix": { + "Type": 5.0, + "String": "" + }, + "ThousandsSep": { + "Type": 2.0, + "Boolean": 1.0 + }, + "Editable": { + "Type": 2.0, + "Boolean": 1.0 + }, + "ForeColour": { + "Type": 4.0, + "Color": { + "Red": 0.0, + "Green": 0.0, + "Blue": 0.0, + "Alpha": 255.0 + } + }, + "BackColour": { + "Type": 4.0, + "Color": { + "Red": 255.0, + "Green": 255.0, + "Blue": 255.0, + "Alpha": 255.0 + } + }, + "TabOrder": { + "Type": 3.0, + "Integer": -1.0 + } + } + }, + "Numeric": { + "Visible": 1.0, + "ObjectProperties": { + "Name": { + "Type": 5.0, + "String": "is_success_auto_exec" + }, + "X": { + "Type": 3.0, + "Integer": 456.0 + }, + "Y": { + "Type": 3.0, + "Integer": 30.0 + }, + "Width": { + "Type": 3.0, + "Integer": 90.0 + }, + "Height": { + "Type": 3.0, + "Integer": 24.0 + }, + "Tool Tip": { + "Type": 5.0, + "String": "" + }, + "Value": { + "Type": 1.0, + "Double": 0.0 + }, + "Mode": { + "Type": 3.0, + "Integer": 1.0 + }, + "Format": { + "Type": 3.0, + "Integer": 0.0 + }, + "Decimals": { + "Type": 3.0, + "Integer": 3.0 + }, + "Prefix": { + "Type": 5.0, + "String": "" + }, + "Suffix": { + "Type": 5.0, + "String": "" + }, + "ThousandsSep": { + "Type": 2.0, + "Boolean": 1.0 + }, + "Editable": { + "Type": 2.0, + "Boolean": 1.0 + }, + "ForeColour": { + "Type": 4.0, + "Color": { + "Red": 0.0, + "Green": 0.0, + "Blue": 0.0, + "Alpha": 255.0 + } + }, + "BackColour": { + "Type": 4.0, + "Color": { + "Red": 255.0, + "Green": 255.0, + "Blue": 255.0, + "Alpha": 255.0 + } + }, + "TabOrder": { + "Type": 3.0, + "Integer": -1.0 + } + } + }, + "TextEntry": { + "Visible": 1.0, + "ObjectProperties": { + "Name": { + "Type": 5.0, + "String": "object 9" + }, + "X": { + "Type": 3.0, + "Integer": 153.0 + }, + "Y": { + "Type": 3.0, + "Integer": 84.0 + }, + "Width": { + "Type": 3.0, + "Integer": 150.0 + }, + "Height": { + "Type": 3.0, + "Integer": 24.0 + }, + "Tool Tip": { + "Type": 5.0, + "String": "" + }, + "Text": { + "Type": 5.0, + "String": "No Financial Model" + }, + "Editable": { + "Type": 2.0, + "Boolean": 1.0 + }, + "ForeColour": { + "Type": 4.0, + "Color": { + "Red": 0.0, + "Green": 0.0, + "Blue": 0.0, + "Alpha": 255.0 + } + }, + "BackColour": { + "Type": 4.0, + "Color": { + "Red": 255.0, + "Green": 255.0, + "Blue": 255.0, + "Alpha": 255.0 + } + }, + "TabOrder": { + "Type": 3.0, + "Integer": -1.0 + } + } + }, + "Numeric": { + "Visible": 1.0, + "ObjectProperties": { + "Name": { + "Type": 5.0, + "String": "total_getem_om_cost_calc" + }, + "X": { + "Type": 3.0, + "Integer": 480.0 + }, + "Y": { + "Type": 3.0, + "Integer": 78.0 + }, + "Width": { + "Type": 3.0, + "Integer": 90.0 + }, + "Height": { + "Type": 3.0, + "Integer": 24.0 + }, + "Tool Tip": { + "Type": 5.0, + "String": "" + }, + "Value": { + "Type": 1.0, + "Double": 0.0 + }, + "Mode": { + "Type": 3.0, + "Integer": 1.0 + }, + "Format": { + "Type": 3.0, + "Integer": 0.0 + }, + "Decimals": { + "Type": 3.0, + "Integer": 3.0 + }, + "Prefix": { + "Type": 5.0, + "String": "" + }, + "Suffix": { + "Type": 5.0, + "String": "" + }, + "ThousandsSep": { + "Type": 2.0, + "Boolean": 1.0 + }, + "Editable": { + "Type": 2.0, + "Boolean": 1.0 + }, + "ForeColour": { + "Type": 4.0, + "Color": { + "Red": 0.0, + "Green": 0.0, + "Blue": 0.0, + "Alpha": 255.0 + } + }, + "BackColour": { + "Type": 4.0, + "Color": { + "Red": 255.0, + "Green": 255.0, + "Blue": 255.0, + "Alpha": 255.0 + } + }, + "TabOrder": { + "Type": 3.0, + "Integer": -1.0 + } + } + } + }, + "VarDatabase": { + "baseline_cost_calc": { + "Version": 4.0, + "Type": 1.0, + "Label": "", + "Units": "", + "Group": "", + "IndexLabels": "", + "Flags": 8.0, + "DefaultValue": -999.0, + "UIObject": "Default", + "sscVariableName": "", + "sscVariableValue": "" + }, + "bottom_hole_pressure_calc": { + "Version": 4.0, + "Type": 1.0, + "Label": "", + "Units": "", + "Group": "", + "IndexLabels": "", + "Flags": 8.0, + "DefaultValue": -999.0, + "UIObject": "Default", + "sscVariableName": "", + "sscVariableValue": "" + }, + "conf_drilling_cost_calc": { + "Version": 4.0, + "Type": 1.0, + "Label": "", + "Units": "", + "Group": "", + "IndexLabels": "", + "Flags": 8.0, + "DefaultValue": -999.0, + "UIObject": "Default", + "sscVariableName": "", + "sscVariableValue": "" + }, + "conf_total_cost_calc": { + "Version": 4.0, + "Type": 1.0, + "Label": "", + "Units": "", + "Group": "", + "IndexLabels": "", + "Flags": 8.0, + "DefaultValue": -999.0, + "UIObject": "Default", + "sscVariableName": "", + "sscVariableValue": "" + }, + "construction_financing_cost_calc": { + "Version": 4.0, + "Type": 1.0, + "Label": "construction financing", + "Units": "", + "Group": "", + "IndexLabels": "", + "Flags": 8.0, + "DefaultValue": -999.0, + "UIObject": "Default", + "sscVariableName": "", + "sscVariableValue": "" + }, + "contingency_cost_calc": { + "Version": 4.0, + "Type": 1.0, + "Label": "", + "Units": "", + "Group": "", + "IndexLabels": "", + "Flags": 8.0, + "DefaultValue": -999.0, + "UIObject": "Default", + "sscVariableName": "", + "sscVariableValue": "" + }, + "design_temp_calc": { + "Version": 4.0, + "Type": 1.0, + "Label": "", + "Units": "", + "Group": "", + "IndexLabels": "", + "Flags": 8.0, + "DefaultValue": -999.0, + "UIObject": "Default", + "sscVariableName": "", + "sscVariableValue": "" + }, + "epc_total_cost_calc": { + "Version": 4.0, + "Type": 1.0, + "Label": "", + "Units": "", + "Group": "", + "IndexLabels": "", + "Flags": 8.0, + "DefaultValue": -999.0, + "UIObject": "Default", + "sscVariableName": "", + "sscVariableValue": "" + }, + "expl_cost_per_well_calc": { + "Version": 4.0, + "Type": 1.0, + "Label": "", + "Units": "", + "Group": "", + "IndexLabels": "", + "Flags": 8.0, + "DefaultValue": -999.0, + "UIObject": "Default", + "sscVariableName": "", + "sscVariableValue": "" + }, + "expl_drilling_cost_calc": { + "Version": 4.0, + "Type": 1.0, + "Label": "", + "Units": "", + "Group": "", + "IndexLabels": "", + "Flags": 8.0, + "DefaultValue": -999.0, + "UIObject": "Default", + "sscVariableName": "", + "sscVariableValue": "" + }, + "expl_total_cost_calc": { + "Version": 4.0, + "Type": 1.0, + "Label": "", + "Units": "", + "Group": "", + "IndexLabels": "", + "Flags": 8.0, + "DefaultValue": -999.0, + "UIObject": "Default", + "sscVariableName": "", + "sscVariableValue": "" + }, + "field_gathering_num_wells_calc": { + "Version": 4.0, + "Type": 1.0, + "Label": "", + "Units": "", + "Group": "", + "IndexLabels": "", + "Flags": 8.0, + "DefaultValue": -999.0, + "UIObject": "Default", + "sscVariableName": "", + "sscVariableValue": "" + }, + "geo_financial_model": { + "Version": 4.0, + "Type": 1.0, + "Label": "", + "Units": "", + "Group": "", + "IndexLabels": "", + "Flags": 8.0, + "DefaultValue": -999.0, + "UIObject": "Default", + "sscVariableName": "", + "sscVariableValue": "" + }, + "geothermal_analysis_period": { + "Version": 4.0, + "Type": 1.0, + "Label": "", + "Units": "", + "Group": "", + "IndexLabels": "", + "Flags": 8.0, + "DefaultValue": -999.0, + "UIObject": "Default", + "sscVariableName": "", + "sscVariableValue": "" + }, + "gross_cost_output_calc": { + "Version": 4.0, + "Type": 1.0, + "Label": "", + "Units": "", + "Group": "", + "IndexLabels": "", + "Flags": 8.0, + "DefaultValue": -999.0, + "UIObject": "Default", + "sscVariableName": "", + "sscVariableValue": "" + }, + "gross_output_calc": { + "Version": 4.0, + "Type": 1.0, + "Label": "", + "Units": "", + "Group": "", + "IndexLabels": "", + "Flags": 8.0, + "DefaultValue": -999.0, + "UIObject": "Default", + "sscVariableName": "", + "sscVariableValue": "" + }, + "indirect_cost_calc": { + "Version": 4.0, + "Type": 1.0, + "Label": "", + "Units": "", + "Group": "", + "IndexLabels": "", + "Flags": 8.0, + "DefaultValue": -999.0, + "UIObject": "Default", + "sscVariableName": "", + "sscVariableValue": "" + }, + "indirect_pump_cost_calc": { + "Version": 4.0, + "Type": 1.0, + "Label": "", + "Units": "", + "Group": "", + "IndexLabels": "", + "Flags": 8.0, + "DefaultValue": -999.0, + "UIObject": "Default", + "sscVariableName": "", + "sscVariableValue": "" + }, + "inj_num_pumps_calc": { + "Version": 4.0, + "Type": 1.0, + "Label": "", + "Units": "", + "Group": "", + "IndexLabels": "", + "Flags": 8.0, + "DefaultValue": -999.0, + "UIObject": "Default", + "sscVariableName": "", + "sscVariableValue": "" + }, + "inj_pump_cost_calc": { + "Version": 4.0, + "Type": 1.0, + "Label": "", + "Units": "", + "Group": "", + "IndexLabels": "", + "Flags": 8.0, + "DefaultValue": -999.0, + "UIObject": "Default", + "sscVariableName": "", + "sscVariableValue": "" + }, + "inj_pump_cost_per_pump_calc": { + "Version": 4.0, + "Type": 1.0, + "Label": "", + "Units": "", + "Group": "", + "IndexLabels": "", + "Flags": 8.0, + "DefaultValue": -999.0, + "UIObject": "Default", + "sscVariableName": "", + "sscVariableValue": "" + }, + "inj_pump_hp_calc": { + "Version": 4.0, + "Type": 1.0, + "Label": "", + "Units": "", + "Group": "", + "IndexLabels": "", + "Flags": 8.0, + "DefaultValue": -999.0, + "UIObject": "Default", + "sscVariableName": "", + "sscVariableValue": "" + }, + "inj_total_cost_calc": { + "Version": 4.0, + "Type": 1.0, + "Label": "", + "Units": "", + "Group": "", + "IndexLabels": "", + "Flags": 8.0, + "DefaultValue": -999.0, + "UIObject": "Default", + "sscVariableName": "", + "sscVariableValue": "" + }, + "inj_well_cost_calc": { + "Version": 4.0, + "Type": 1.0, + "Label": "", + "Units": "", + "Group": "", + "IndexLabels": "", + "Flags": 8.0, + "DefaultValue": -999.0, + "UIObject": "Default", + "sscVariableName": "", + "sscVariableValue": "" + }, + "installed_cost_per_kW_calc": { + "Version": 4.0, + "Type": 1.0, + "Label": "", + "Units": "", + "Group": "", + "IndexLabels": "", + "Flags": 8.0, + "DefaultValue": -999.0, + "UIObject": "Default", + "sscVariableName": "", + "sscVariableValue": "" + }, + "is_success_auto_exec": { + "Version": 4.0, + "Type": 1.0, + "Label": "Is success auto exec", + "Units": "", + "Group": "", + "IndexLabels": "", + "Flags": 8.0, + "DefaultValue": -999.0, + "UIObject": "Default", + "sscVariableName": "", + "sscVariableValue": "" + }, + "net_plant_output_calc": { + "Version": 4.0, + "Type": 1.0, + "Label": "", + "Units": "", + "Group": "", + "IndexLabels": "", + "Flags": 8.0, + "DefaultValue": -999.0, + "UIObject": "Default", + "sscVariableName": "", + "sscVariableValue": "" + }, + "num_confirm_wells_to_production_calc": { + "Version": 4.0, + "Type": 1.0, + "Label": "adfaf", + "Units": "", + "Group": "", + "IndexLabels": "", + "Flags": 8.0, + "DefaultValue": -999.0, + "UIObject": "Default", + "sscVariableName": "", + "sscVariableValue": "" + }, + "num_wells_calc": { + "Version": 4.0, + "Type": 1.0, + "Label": "", + "Units": "", + "Group": "", + "IndexLabels": "", + "Flags": 8.0, + "DefaultValue": -999.0, + "UIObject": "Default", + "sscVariableName": "", + "sscVariableValue": "" + }, + "num_wells_getem_inj_calc": { + "Version": 4.0, + "Type": 1.0, + "Label": "", + "Units": "", + "Group": "", + "IndexLabels": "", + "Flags": 8.0, + "DefaultValue": -999.0, + "UIObject": "Default", + "sscVariableName": "", + "sscVariableValue": "" + }, + "num_wells_getem_inj_drilled_calc": { + "Version": 4.0, + "Type": 1.0, + "Label": "", + "Units": "", + "Group": "", + "IndexLabels": "", + "Flags": 8.0, + "DefaultValue": -999.0, + "UIObject": "Default", + "sscVariableName": "", + "sscVariableValue": "" + }, + "num_wells_getem_prod_drilled_calc": { + "Version": 4.0, + "Type": 1.0, + "Label": "", + "Units": "", + "Group": "", + "IndexLabels": "", + "Flags": 8.0, + "DefaultValue": -999.0, + "UIObject": "Default", + "sscVariableName": "", + "sscVariableValue": "" + }, + "num_wells_getem_prod_inj_sum_calc": { + "Version": 4.0, + "Type": 1.0, + "Label": "nu", + "Units": "", + "Group": "", + "IndexLabels": "", + "Flags": 8.0, + "DefaultValue": -999.0, + "UIObject": "Default", + "sscVariableName": "", + "sscVariableValue": "" + }, + "piping_cost_per_well_calc": { + "Version": 4.0, + "Type": 1.0, + "Label": "", + "Units": "", + "Group": "", + "IndexLabels": "", + "Flags": 8.0, + "DefaultValue": -999.0, + "UIObject": "Default", + "sscVariableName": "", + "sscVariableValue": "" + }, + "plant_brine_eff_calc": { + "Version": 4.0, + "Type": 1.0, + "Label": "", + "Units": "", + "Group": "", + "IndexLabels": "", + "Flags": 8.0, + "DefaultValue": -999.0, + "UIObject": "Default", + "sscVariableName": "", + "sscVariableValue": "" + }, + "plm_total_cost_calc": { + "Version": 4.0, + "Type": 1.0, + "Label": "", + "Units": "", + "Group": "", + "IndexLabels": "", + "Flags": 8.0, + "DefaultValue": -999.0, + "UIObject": "Default", + "sscVariableName": "", + "sscVariableValue": "" + }, + "prod_inj_total_cost_calc": { + "Version": 4.0, + "Type": 1.0, + "Label": "", + "Units": "", + "Group": "", + "IndexLabels": "", + "Flags": 8.0, + "DefaultValue": -999.0, + "UIObject": "Default", + "sscVariableName": "", + "sscVariableValue": "" + }, + "prod_pump_cost_calc": { + "Version": 4.0, + "Type": 1.0, + "Label": "", + "Units": "", + "Group": "", + "IndexLabels": "", + "Flags": 8.0, + "DefaultValue": -999.0, + "UIObject": "Default", + "sscVariableName": "", + "sscVariableValue": "" + }, + "prod_pump_cost_per_well_calc": { + "Version": 4.0, + "Type": 1.0, + "Label": "", + "Units": "", + "Group": "", + "IndexLabels": "", + "Flags": 8.0, + "DefaultValue": -999.0, + "UIObject": "Default", + "sscVariableName": "", + "sscVariableValue": "" + }, + "prod_total_cost_calc": { + "Version": 4.0, + "Type": 1.0, + "Label": "", + "Units": "", + "Group": "", + "IndexLabels": "", + "Flags": 8.0, + "DefaultValue": -999.0, + "UIObject": "Default", + "sscVariableName": "", + "sscVariableValue": "" + }, + "prod_well_cost_calc": { + "Version": 4.0, + "Type": 1.0, + "Label": "", + "Units": "", + "Group": "", + "IndexLabels": "", + "Flags": 8.0, + "DefaultValue": -999.0, + "UIObject": "Default", + "sscVariableName": "", + "sscVariableValue": "" + }, + "pump_cost_install_calc": { + "Version": 4.0, + "Type": 1.0, + "Label": "pump cost install calc", + "Units": "", + "Group": "", + "IndexLabels": "", + "Flags": 8.0, + "DefaultValue": -999.0, + "UIObject": "Default", + "sscVariableName": "", + "sscVariableValue": "" + }, + "pump_depth_ft_calc": { + "Version": 4.0, + "Type": 1.0, + "Label": "", + "Units": "", + "Group": "", + "IndexLabels": "", + "Flags": 8.0, + "DefaultValue": -999.0, + "UIObject": "Default", + "sscVariableName": "", + "sscVariableValue": "" + }, + "pump_only_cost_calc": { + "Version": 4.0, + "Type": 1.0, + "Label": "pump only cost calc", + "Units": "", + "Group": "", + "IndexLabels": "", + "Flags": 8.0, + "DefaultValue": -999.0, + "UIObject": "Default", + "sscVariableName": "", + "sscVariableValue": "" + }, + "pump_size_hp_calc": { + "Version": 4.0, + "Type": 1.0, + "Label": "", + "Units": "", + "Group": "", + "IndexLabels": "", + "Flags": 8.0, + "DefaultValue": -999.0, + "UIObject": "Default", + "sscVariableName": "", + "sscVariableValue": "" + }, + "pump_watthr_per_lb_calc": { + "Version": 4.0, + "Type": 1.0, + "Label": "", + "Units": "", + "Group": "", + "IndexLabels": "", + "Flags": 8.0, + "DefaultValue": -999.0, + "UIObject": "Default", + "sscVariableName": "", + "sscVariableValue": "" + }, + "pump_work_calc": { + "Version": 4.0, + "Type": 1.0, + "Label": "", + "Units": "", + "Group": "", + "IndexLabels": "", + "Flags": 8.0, + "DefaultValue": -999.0, + "UIObject": "Default", + "sscVariableName": "", + "sscVariableValue": "" + }, + "pumpwork_inj_calc": { + "Version": 4.0, + "Type": 1.0, + "Label": "", + "Units": "", + "Group": "", + "IndexLabels": "", + "Flags": 8.0, + "DefaultValue": -999.0, + "UIObject": "Default", + "sscVariableName": "", + "sscVariableValue": "" + }, + "pumpwork_prod_calc": { + "Version": 4.0, + "Type": 1.0, + "Label": "pumpwork_prod_calc", + "Units": "", + "Group": "", + "IndexLabels": "", + "Flags": 8.0, + "DefaultValue": -999.0, + "UIObject": "Default", + "sscVariableName": "", + "sscVariableValue": "" + }, + "reservoir_avg_temp_calc": { + "Version": 4.0, + "Type": 1.0, + "Label": "", + "Units": "", + "Group": "", + "IndexLabels": "", + "Flags": 8.0, + "DefaultValue": -999.0, + "UIObject": "Default", + "sscVariableName": "", + "sscVariableValue": "" + }, + "reservoir_pressure_calc": { + "Version": 4.0, + "Type": 1.0, + "Label": "", + "Units": "", + "Group": "", + "IndexLabels": "", + "Flags": 8.0, + "DefaultValue": -999.0, + "UIObject": "Default", + "sscVariableName": "", + "sscVariableValue": "" + }, + "sales_tax_cost_calc": { + "Version": 4.0, + "Type": 1.0, + "Label": "", + "Units": "", + "Group": "", + "IndexLabels": "", + "Flags": 8.0, + "DefaultValue": -999.0, + "UIObject": "Default", + "sscVariableName": "", + "sscVariableValue": "" + }, + "stim_cost_per_well_calc": { + "Version": 4.0, + "Type": 1.0, + "Label": "", + "Units": "", + "Group": "", + "IndexLabels": "", + "Flags": 8.0, + "DefaultValue": -999.0, + "UIObject": "Default", + "sscVariableName": "", + "sscVariableValue": "" + }, + "stim_total_cost_calc": { + "Version": 4.0, + "Type": 1.0, + "Label": "", + "Units": "", + "Group": "", + "IndexLabels": "", + "Flags": 8.0, + "DefaultValue": -999.0, + "UIObject": "Default", + "sscVariableName": "", + "sscVariableValue": "" + }, + "sum_prod_inj_total_cost_calc": { + "Version": 4.0, + "Type": 1.0, + "Label": "", + "Units": "", + "Group": "", + "IndexLabels": "", + "Flags": 8.0, + "DefaultValue": -999.0, + "UIObject": "Default", + "sscVariableName": "", + "sscVariableValue": "" + }, + "system_capacity_calc": { + "Version": 4.0, + "Type": 1.0, + "Label": "", + "Units": "", + "Group": "", + "IndexLabels": "", + "Flags": 8.0, + "DefaultValue": -999.0, + "UIObject": "Default", + "sscVariableName": "", + "sscVariableValue": "" + }, + "system_recapitalization_cost_calc": { + "Version": 4.0, + "Type": 1.0, + "Label": "", + "Units": "", + "Group": "", + "IndexLabels": "", + "Flags": 8.0, + "DefaultValue": -999.0, + "UIObject": "Default", + "sscVariableName": "", + "sscVariableValue": "" + }, + "total_capital_cost_calc": { + "Version": 4.0, + "Type": 1.0, + "Label": "", + "Units": "", + "Group": "", + "IndexLabels": "", + "Flags": 8.0, + "DefaultValue": -999.0, + "UIObject": "Default", + "sscVariableName": "", + "sscVariableValue": "" + }, + "total_direct_cost_calc": { + "Version": 4.0, + "Type": 1.0, + "Label": "", + "Units": "", + "Group": "", + "IndexLabels": "", + "Flags": 8.0, + "DefaultValue": -999.0, + "UIObject": "Default", + "sscVariableName": "", + "sscVariableValue": "" + }, + "total_drilling_cost_calc": { + "Version": 4.0, + "Type": 1.0, + "Label": "", + "Units": "", + "Group": "", + "IndexLabels": "", + "Flags": 8.0, + "DefaultValue": -999.0, + "UIObject": "Default", + "sscVariableName": "", + "sscVariableValue": "" + }, + "total_drilling_cost_used_calc": { + "Version": 4.0, + "Type": 1.0, + "Label": "", + "Units": "", + "Group": "", + "IndexLabels": "", + "Flags": 8.0, + "DefaultValue": -999.0, + "UIObject": "Default", + "sscVariableName": "", + "sscVariableValue": "" + }, + "total_gathering_cost_calc": { + "Version": 4.0, + "Type": 1.0, + "Label": "", + "Units": "", + "Group": "", + "IndexLabels": "", + "Flags": 8.0, + "DefaultValue": -999.0, + "UIObject": "Default", + "sscVariableName": "", + "sscVariableValue": "" + }, + "total_getem_om_cost_calc": { + "Version": 4.0, + "Type": 1.0, + "Label": "OM costs calc", + "Units": "", + "Group": "", + "IndexLabels": "", + "Flags": 8.0, + "DefaultValue": -999.0, + "UIObject": "Default", + "sscVariableName": "", + "sscVariableValue": "" + }, + "total_installed_cost_calc": { + "Version": 4.0, + "Type": 1.0, + "Label": "", + "Units": "", + "Group": "", + "IndexLabels": "", + "Flags": 8.0, + "DefaultValue": -999.0, + "UIObject": "Default", + "sscVariableName": "", + "sscVariableValue": "" + }, + "total_plant_cost_calc": { + "Version": 4.0, + "Type": 1.0, + "Label": "", + "Units": "", + "Group": "", + "IndexLabels": "", + "Flags": 8.0, + "DefaultValue": -999.0, + "UIObject": "Default", + "sscVariableName": "", + "sscVariableValue": "" + }, + "total_plant_cost_used_calc": { + "Version": 4.0, + "Type": 1.0, + "Label": "", + "Units": "", + "Group": "", + "IndexLabels": "", + "Flags": 8.0, + "DefaultValue": -999.0, + "UIObject": "Default", + "sscVariableName": "", + "sscVariableValue": "" + }, + "total_pump_cost_calc": { + "Version": 4.0, + "Type": 1.0, + "Label": "", + "Units": "", + "Group": "", + "IndexLabels": "", + "Flags": 8.0, + "DefaultValue": -999.0, + "UIObject": "Default", + "sscVariableName": "", + "sscVariableValue": "" + }, + "total_pump_gathering_cost_used_calc": { + "Version": 4.0, + "Type": 1.0, + "Label": "", + "Units": "", + "Group": "", + "IndexLabels": "", + "Flags": 8.0, + "DefaultValue": -999.0, + "UIObject": "Default", + "sscVariableName": "", + "sscVariableValue": "" + }, + "total_surface_equipment_cost_calc": { + "Version": 4.0, + "Type": 1.0, + "Label": "", + "Units": "", + "Group": "", + "IndexLabels": "", + "Flags": 8.0, + "DefaultValue": -999.0, + "UIObject": "Default", + "sscVariableName": "", + "sscVariableValue": "" + } + }, + "Equations": [ + "equations{ 'geo_financial_model' } = define() {\r", + "\tif (financing() == \"Single Owner\"){\r", + "\t\treturn 1;\r", + "\t}\r", + "\telse if(financing() == \"Leveraged Partnership Flip\"){\r", + "\t\treturn 2;\r", + "\t}\r", + "\telse if(financing() == \"All Equity Partnership Flip\"){\r", + "\t\treturn 3;\r", + "\t}\r", + "\telse if(financing() == \"Sale Leaseback\"){\r", + "\t\treturn 4;\r", + "\t}\r", + "\telse if(financing() == \"Commercial\"){\r", + "\t\treturn 5;\r", + "\t}\r", + "\telse if(financing() == \"Merchant Plant\"){\r", + "\t\treturn 6;\r", + "\t}\r", + "\telse if(financing() == \"LCOE Calculator\"){\r", + "\t\treturn 7;\r", + "\t}\r", + "\telse if(financing() == \"None\"){\r", + "\t\treturn 8;\r", + "\t}\r", + "\telse{\r", + "\t\treturn -1;\r", + "\t}\r", + "};\r", + "\r", + "equations{ '$MIMO$ ui_mspt_system_design__mspt_cmod' } = define()\r", + "{\r", + "\tobj = ssc_create();\r", + "\t\r", + "\tgeo_fin_model = ${geo_financial_model};\r", + "\r", + "\t//#ssc_auto_exec(obj, 'geothermal_no_fin', 2);\r", + "\r", + "\t//ret_d = ssc_dump(obj, 'geothermal_ssc_auto_exec.lk');\r", + "\t\r", + "\tif(geo_fin_model < 8){\r", + "\t\tret = ssc_exec(obj, 'geothermal');\r", + "\t}\r", + "\telse{\r", + "\t\tret = ssc_exec(obj, 'geothermal_no_fin');\r", + "\t}\r", + "\t\r", + "\tif(ret == 0)\r", + "\t{\r", + "\t\t${is_success_auto_exec} = 1;\r", + "\t\t${geothermal_analysis_period} = ssc_var(obj, 'geothermal_analysis_period');\r", + "\t\t\r", + "\t\t${design_temp_calc} = ssc_var(obj, \"design_temp\");\r", + "\t\t\r", + "\t\t${plant_brine_eff_calc} = ssc_var( obj, 'plant_brine_eff');\r", + "\t\t${gross_output_calc} = ssc_var(obj, \"gross_output\");\r", + "\t\t${gross_cost_output_calc} = ssc_var(obj, \"gross_cost_output\");\r", + "\t\t\r", + "\t\t${num_wells_calc} = ssc_var(obj, \"num_wells_getem_output\");\r", + "\t\t${num_wells_getem_inj_calc} = ssc_var(obj, \"num_wells_getem_inj\");\r", + "\t\t${num_wells_getem_prod_drilled_calc} = ssc_var(obj, \"num_wells_getem_prod_drilled\");\r", + "\t\t${num_wells_getem_inj_drilled_calc} = ssc_var(obj, \"num_wells_getem_inj_drilled\");\r", + "\t\t\r", + "\t\t${pump_watthr_per_lb_calc} = ssc_var(obj, \"pump_watthr_per_lb\");\r", + "\t\t${pumpwork_prod_calc} = ssc_var(obj, \"pumpwork_prod\");\r", + "\t\t${pump_size_hp_calc} = ssc_var(obj, \"pump_size_hp\");\r", + "\t\t${pumpwork_inj_calc} = ssc_var(obj, \"pumpwork_inj\");\r", + "\t\t${pump_depth_ft_calc} = ssc_var(obj, \"pump_depth_ft\");\r", + "\t\t${inj_pump_hp_calc} = ssc_var(obj, \"inj_pump_hp\");\r", + "\t\t${pump_work_calc} = ssc_var(obj, \"pump_work\");\r", + "\t\t\r", + "\t\t${reservoir_pressure_calc} = ssc_var(obj, \"reservoir_pressure\");\r", + "\t\t${reservoir_avg_temp_calc} = ssc_var(obj, \"reservoir_avg_temp\");\r", + "\t\t${bottom_hole_pressure_calc} = ssc_var(obj, \"bottom_hole_pressure\");\r", + "\t\t\r", + "\t\t${net_plant_output_calc} = ssc_var(obj, \"net_plant_output\");\r", + "\t\t${system_capacity_calc} = ssc_var(obj, \"system_capacity\");\r", + "\t\t\r", + "\t\t${num_confirm_wells_to_production_calc} = ssc_var(obj, 'num_confirm_wells_to_production');\r", + "\t\t\r", + "\t\tif(geo_fin_model < 8){\r", + "\t\t\t${baseline_cost_calc} = ssc_var(obj, 'baseline_cost');\r", + "\t\t\t${total_pump_cost_calc} = ssc_var(obj, 'total_pump_cost');\r", + "\r", + "\t\t\t${total_gathering_cost_calc} = ssc_var(obj, 'total_gathering_cost');\r", + "\t\t\t${pump_cost_install_calc} = ssc_var(obj, 'pump_cost_install');\r", + "\t\t\t${pump_only_cost_calc} = ssc_var(obj, 'pump_only_cost');\r", + "\t\t\t${prod_pump_cost_per_well_calc} = ssc_var(obj, 'prod_pump_cost_per_well');\r", + "\t\t\t${inj_pump_cost_per_pump_calc} = ssc_var(obj, 'inj_pump_cost_per_pump');\r", + "\t\t\t${inj_num_pumps_calc} = ssc_var(obj, 'inj_num_pumps');\r", + "\t\t\t\t\r", + "\t\t\t${prod_pump_cost_calc} = ssc_var(obj, 'prod_pump_cost');\r", + "\t\t\t${inj_pump_cost_calc} = ssc_var(obj, 'inj_pump_cost');\r", + "\t\t\t${indirect_pump_cost_calc} = ssc_var(obj, 'indirect_pump_gathering_cost');\r", + "\t\t\t${total_pump_gathering_cost_used_calc} = ssc_var(obj, 'total_pump_gathering_cost_used');\r", + "\t\t\t\r", + "\t\t\t${total_surface_equipment_cost_calc} = ssc_var(obj, 'total_surface_equipment_cost');\r", + "\r", + "\t\t\t${sum_prod_inj_total_cost_calc} = ssc_var(obj, 'sum_prod_inj_total_cost');\r", + "\t\t\t${prod_inj_total_cost_calc} = ssc_var(obj, 'prod_inj_total_cost');\r", + "\r", + "\t\t\t${piping_cost_per_well_calc} = ssc_var(obj, 'piping_cost_per_well');\r", + "\t\t\t${field_gathering_num_wells_calc} = ssc_var(obj, 'field_gathering_num_wells');\r", + "\t\t\t${stim_cost_per_well_calc} = ssc_var(obj, 'stim_cost_per_well');\r", + "\t\t\t${stim_total_cost_calc} = ssc_var(obj, 'stim_total_cost');\r", + "\r", + "\t\t\t${num_wells_getem_prod_inj_sum_calc} = ssc_var(obj, 'num_wells_getem_prod_inj_sum');\r", + "\r", + "\t\t\t${expl_total_cost_calc} = ssc_var(obj, 'expl_total_cost');\r", + "\t\t\t${expl_drilling_cost_calc} = ssc_var(obj, 'expl_drilling_cost');\r", + "\t\t\t${conf_total_cost_calc} = ssc_var(obj, 'conf_total_cost');\r", + "\t\t\t${conf_drilling_cost_calc} = ssc_var(obj, 'conf_drilling_cost');\r", + "\t\t\t${expl_cost_per_well_calc} = ssc_var(obj, 'expl_cost_per_well');\r", + "\t\t\t\r", + "\t\t\t${prod_well_cost_calc} = ssc_var(obj, 'prod_well_cost');\r", + "\t\t\t${prod_total_cost_calc} = ssc_var(obj, 'prod_total_cost');\r", + "\t\t\t${inj_well_cost_calc} = ssc_var(obj, 'inj_well_cost');\r", + "\t\t\t${inj_total_cost_calc} = ssc_var(obj, 'inj_total_cost');\r", + "\t\t\t${total_drilling_cost_calc} = ssc_var(obj, 'total_drilling_cost');\r", + "\t\t\t${total_drilling_cost_used_calc} = ssc_var(obj, 'total_drilling_cost_used');\r", + "\r", + "\t\t\t${total_plant_cost_calc} = ssc_var(obj, 'total_plant_cost');\r", + "\t\t\t${total_plant_cost_used_calc} = ssc_var(obj, 'total_plant_cost_used');\r", + "\r", + "\t\t\t${system_recapitalization_cost_calc} = ssc_var(obj, 'system_recapitalization_cost');\r", + "\t\t\t${total_capital_cost_calc} = ssc_var(obj, 'total_capital_cost');\r", + "\t\t\t${contingency_cost_calc} = ssc_var(obj, 'contingency_cost');\r", + "\t\t\t${total_direct_cost_calc} = ssc_var(obj, 'total_direct_cost');\r", + "\t\t\t${epc_total_cost_calc} = ssc_var(obj, 'epc_total_cost');\r", + "\t\t\t${plm_total_cost_calc} = ssc_var(obj, 'plm_total_cost');\r", + "\t\t\t${sales_tax_cost_calc} = ssc_var(obj, 'sales_tax_cost');\r", + "\t\t\t${indirect_cost_calc} = ssc_var(obj, 'indirect_cost');\r", + "\t\t\t${total_installed_cost_calc} = ssc_var(obj, 'total_installed_cost');\r", + "\t\t\t${installed_cost_per_kW_calc} = ssc_var(obj, 'installed_cost_per_kW');\r", + "\r", + "\t\t\t//${total_getem_om_cost_calc} = ssc_var(obj, 'total_getem_om_cost');\r", + "\t\t\t//${construction_financing_cost_calc} = ssc_var(obj, 'construction_financing_cost');\r", + "\t\t}\r", + "\t}\r", + "\telse{\r", + "\t\t\r", + "\t\tfail = -6789;\r", + "\t\t\r", + "\t\t${is_success_auto_exec} = fail;\r", + "\t\t\r", + "\t\t${geothermal_analysis_period} = -1;\r", + "\t\t\r", + "\t\t${design_temp_calc} = fail;\r", + "\t\t\r", + "\t\t${plant_brine_eff_calc} = fail;\r", + "\t\t${gross_output_calc} = fail;\r", + "\t\t${gross_cost_output_calc} = fail;\r", + "\t\t\r", + "\t\t${num_wells_calc} = fail;\r", + "\t\t${num_wells_getem_inj_calc} = fail;\r", + "\t\t${num_wells_getem_prod_drilled_calc} = fail;\r", + "\t\t${num_wells_getem_inj_drilled_calc} = fail;\r", + "\t\t\r", + "\t\t${pump_watthr_per_lb_calc} = fail;\r", + "\t\t${pumpwork_prod_calc} = fail;\r", + "\t\t${pump_size_hp_calc} = fail;\r", + "\t\t${pumpwork_inj_calc} = fail;\r", + "\t\t${pump_depth_ft_calc} = fail;\r", + "\t\t${inj_pump_hp_calc} = fail;\r", + "\t\t${pump_work_calc} = fail;\r", + "\t\t\r", + "\t\t${reservoir_pressure_calc} = fail;\r", + "\t\t${reservoir_avg_temp_calc} = fail;\r", + "\t\t${bottom_hole_pressure_calc} = fail;\r", + "\t\t\r", + "\t\t${net_plant_output_calc} = fail;\r", + "\t\t${system_capacity_calc} = fail;\r", + "\t\t\r", + "\t\t${baseline_cost_calc} = fail;\r", + "\t\t${total_pump_cost_calc} = fail;\r", + "\t\t\r", + "\t\t${total_gathering_cost_calc} = fail;\r", + "\t\t${pump_cost_install_calc} = fail;\r", + "\t\t${pump_only_cost_calc} = fail;\r", + "\t\t${prod_pump_cost_per_well_calc} = fail;\r", + "\t\t${inj_pump_cost_per_pump_calc} = fail;\r", + "\t\t${inj_num_pumps_calc} = fail;\r", + "\t\t\r", + "\t\t${prod_pump_cost_calc} = fail;\r", + "\t\t${inj_pump_cost_calc} = fail;\r", + "\t\t${indirect_pump_cost_calc} = fail;\r", + "\t\t${total_pump_gathering_cost_used_calc} = fail;\r", + "\t\t\r", + "\t\t${total_surface_equipment_cost_calc} = fail; \r", + "\t\t\r", + "\t\t${sum_prod_inj_total_cost_calc} = fail;\r", + "\t\t${prod_inj_total_cost_calc} = fail;\r", + "\t\t\r", + "\t\t${piping_cost_per_well_calc} = fail;\r", + "\t\t${field_gathering_num_wells_calc} = fail;\r", + "\t\t${stim_cost_per_well_calc} = fail;\r", + "\t\t${stim_total_cost_calc} = fail;\r", + "\t\t\r", + "\t\t${num_wells_getem_prod_inj_sum_calc} = fail;\r", + "\t\t\r", + "\t\t${expl_total_cost_calc} = fail;\r", + "\t\t${expl_drilling_cost_calc} = fail;\r", + "\t\t${conf_total_cost_calc} = fail;\r", + "\t\t${conf_drilling_cost_calc} = fail;\r", + "\t\t${expl_cost_per_well_calc} = fail;\r", + "\t\t${num_confirm_wells_to_production_calc} = fail;\r", + "\t\t\r", + "\t\t${prod_well_cost_calc} = fail;\r", + "\t\t${prod_total_cost_calc} = fail;\r", + "\t\t${inj_well_cost_calc} = fail;\r", + "\t\t${inj_total_cost_calc} = fail;\r", + "\t\t${total_drilling_cost_calc} = fail;\r", + "\t\t${total_plant_cost_used_calc} = fail;\r", + "\t\t\r", + "\t\t${total_plant_cost_calc} = fail;\r", + "\t\t${total_plant_cost_used_calc} = fail;\r", + "\t\t\r", + "\t\t${system_recapitalization_cost_calc} = fail;\r", + "\t\t${total_capital_cost_calc} = fail;\r", + "\t\t${contingency_cost_calc} = fail;\r", + "\t\t${total_direct_cost_calc} = fail;\r", + "\t\t${epc_total_cost_calc} = fail;\r", + "\t\t${plm_total_cost_calc} = fail;\r", + "\t\t${sales_tax_cost_calc} = fail;\r", + "\t\t${indirect_cost_calc} = fail;\r", + "\t\t${total_installed_cost_calc} = fail;\r", + "\t\t${installed_cost_per_kW_calc} = fail;\r", + "\t\t\r", + "\t\t${total_getem_om_cost_calc} = fail;\r", + "\t\t\r", + "\t\t${construction_financing_cost_calc} = fail;\r", + "\t}\r", + "\t\r", + "};" + ], + "Callbacks": [] +} \ No newline at end of file diff --git a/deploy/runtime/ui/Geothermal System Design.json b/deploy/runtime/ui/Geothermal System Design.json new file mode 100644 index 0000000000..95669f95f5 --- /dev/null +++ b/deploy/runtime/ui/Geothermal System Design.json @@ -0,0 +1,1399 @@ +{ + "Name": "Geothermal System Design", + "Width": 822.0, + "Height": 17.0, + "FormObjects": { + "Numeric": { + "Visible": 1.0, + "ObjectProperties": { + "Name": { + "Type": 5.0, + "String": "construction_financing_cost_calc" + }, + "X": { + "Type": 3.0, + "Integer": 186.0 + }, + "Y": { + "Type": 3.0, + "Integer": 42.0 + }, + "Width": { + "Type": 3.0, + "Integer": 90.0 + }, + "Height": { + "Type": 3.0, + "Integer": 24.0 + }, + "Tool Tip": { + "Type": 5.0, + "String": "" + }, + "Value": { + "Type": 1.0, + "Double": 0.0 + }, + "Mode": { + "Type": 3.0, + "Integer": 1.0 + }, + "Format": { + "Type": 3.0, + "Integer": 0.0 + }, + "Decimals": { + "Type": 3.0, + "Integer": 3.0 + }, + "Prefix": { + "Type": 5.0, + "String": "" + }, + "Suffix": { + "Type": 5.0, + "String": "" + }, + "ThousandsSep": { + "Type": 2.0, + "Boolean": 1.0 + }, + "Editable": { + "Type": 2.0, + "Boolean": 1.0 + }, + "ForeColour": { + "Type": 4.0, + "Color": { + "Red": 0.0, + "Green": 0.0, + "Blue": 0.0, + "Alpha": 255.0 + } + }, + "BackColour": { + "Type": 4.0, + "Color": { + "Red": 255.0, + "Green": 255.0, + "Blue": 255.0, + "Alpha": 255.0 + } + }, + "TabOrder": { + "Type": 3.0, + "Integer": -1.0 + } + } + }, + "Numeric": { + "Visible": 1.0, + "ObjectProperties": { + "Name": { + "Type": 5.0, + "String": "is_success_auto_exec" + }, + "X": { + "Type": 3.0, + "Integer": 456.0 + }, + "Y": { + "Type": 3.0, + "Integer": 30.0 + }, + "Width": { + "Type": 3.0, + "Integer": 90.0 + }, + "Height": { + "Type": 3.0, + "Integer": 24.0 + }, + "Tool Tip": { + "Type": 5.0, + "String": "" + }, + "Value": { + "Type": 1.0, + "Double": 0.0 + }, + "Mode": { + "Type": 3.0, + "Integer": 1.0 + }, + "Format": { + "Type": 3.0, + "Integer": 0.0 + }, + "Decimals": { + "Type": 3.0, + "Integer": 3.0 + }, + "Prefix": { + "Type": 5.0, + "String": "" + }, + "Suffix": { + "Type": 5.0, + "String": "" + }, + "ThousandsSep": { + "Type": 2.0, + "Boolean": 1.0 + }, + "Editable": { + "Type": 2.0, + "Boolean": 1.0 + }, + "ForeColour": { + "Type": 4.0, + "Color": { + "Red": 0.0, + "Green": 0.0, + "Blue": 0.0, + "Alpha": 255.0 + } + }, + "BackColour": { + "Type": 4.0, + "Color": { + "Red": 255.0, + "Green": 255.0, + "Blue": 255.0, + "Alpha": 255.0 + } + }, + "TabOrder": { + "Type": 3.0, + "Integer": -1.0 + } + } + }, + "Numeric": { + "Visible": 1.0, + "ObjectProperties": { + "Name": { + "Type": 5.0, + "String": "total_getem_om_cost_calc" + }, + "X": { + "Type": 3.0, + "Integer": 480.0 + }, + "Y": { + "Type": 3.0, + "Integer": 78.0 + }, + "Width": { + "Type": 3.0, + "Integer": 90.0 + }, + "Height": { + "Type": 3.0, + "Integer": 24.0 + }, + "Tool Tip": { + "Type": 5.0, + "String": "" + }, + "Value": { + "Type": 1.0, + "Double": 0.0 + }, + "Mode": { + "Type": 3.0, + "Integer": 1.0 + }, + "Format": { + "Type": 3.0, + "Integer": 0.0 + }, + "Decimals": { + "Type": 3.0, + "Integer": 3.0 + }, + "Prefix": { + "Type": 5.0, + "String": "" + }, + "Suffix": { + "Type": 5.0, + "String": "" + }, + "ThousandsSep": { + "Type": 2.0, + "Boolean": 1.0 + }, + "Editable": { + "Type": 2.0, + "Boolean": 1.0 + }, + "ForeColour": { + "Type": 4.0, + "Color": { + "Red": 0.0, + "Green": 0.0, + "Blue": 0.0, + "Alpha": 255.0 + } + }, + "BackColour": { + "Type": 4.0, + "Color": { + "Red": 255.0, + "Green": 255.0, + "Blue": 255.0, + "Alpha": 255.0 + } + }, + "TabOrder": { + "Type": 3.0, + "Integer": -1.0 + } + } + } + }, + "VarDatabase": { + "baseline_cost_calc": { + "Version": 4.0, + "Type": 1.0, + "Label": "", + "Units": "", + "Group": "", + "IndexLabels": "", + "Flags": 8.0, + "DefaultValue": -999.0, + "UIObject": "Default", + "sscVariableName": "", + "sscVariableValue": "" + }, + "bottom_hole_pressure_calc": { + "Version": 4.0, + "Type": 1.0, + "Label": "", + "Units": "", + "Group": "", + "IndexLabels": "", + "Flags": 8.0, + "DefaultValue": -999.0, + "UIObject": "Default", + "sscVariableName": "", + "sscVariableValue": "" + }, + "conf_drilling_cost_calc": { + "Version": 4.0, + "Type": 1.0, + "Label": "", + "Units": "", + "Group": "", + "IndexLabels": "", + "Flags": 8.0, + "DefaultValue": -999.0, + "UIObject": "Default", + "sscVariableName": "", + "sscVariableValue": "" + }, + "conf_total_cost_calc": { + "Version": 4.0, + "Type": 1.0, + "Label": "", + "Units": "", + "Group": "", + "IndexLabels": "", + "Flags": 8.0, + "DefaultValue": -999.0, + "UIObject": "Default", + "sscVariableName": "", + "sscVariableValue": "" + }, + "construction_financing_cost_calc": { + "Version": 4.0, + "Type": 1.0, + "Label": "construction financing", + "Units": "", + "Group": "", + "IndexLabels": "", + "Flags": 8.0, + "DefaultValue": -999.0, + "UIObject": "Default", + "sscVariableName": "", + "sscVariableValue": "" + }, + "contingency_cost_calc": { + "Version": 4.0, + "Type": 1.0, + "Label": "", + "Units": "", + "Group": "", + "IndexLabels": "", + "Flags": 8.0, + "DefaultValue": -999.0, + "UIObject": "Default", + "sscVariableName": "", + "sscVariableValue": "" + }, + "design_temp_calc": { + "Version": 4.0, + "Type": 1.0, + "Label": "", + "Units": "", + "Group": "", + "IndexLabels": "", + "Flags": 8.0, + "DefaultValue": -999.0, + "UIObject": "Default", + "sscVariableName": "", + "sscVariableValue": "" + }, + "epc_total_cost_calc": { + "Version": 4.0, + "Type": 1.0, + "Label": "", + "Units": "", + "Group": "", + "IndexLabels": "", + "Flags": 8.0, + "DefaultValue": -999.0, + "UIObject": "Default", + "sscVariableName": "", + "sscVariableValue": "" + }, + "expl_cost_per_well_calc": { + "Version": 4.0, + "Type": 1.0, + "Label": "", + "Units": "", + "Group": "", + "IndexLabels": "", + "Flags": 8.0, + "DefaultValue": -999.0, + "UIObject": "Default", + "sscVariableName": "", + "sscVariableValue": "" + }, + "expl_drilling_cost_calc": { + "Version": 4.0, + "Type": 1.0, + "Label": "", + "Units": "", + "Group": "", + "IndexLabels": "", + "Flags": 8.0, + "DefaultValue": -999.0, + "UIObject": "Default", + "sscVariableName": "", + "sscVariableValue": "" + }, + "expl_total_cost_calc": { + "Version": 4.0, + "Type": 1.0, + "Label": "", + "Units": "", + "Group": "", + "IndexLabels": "", + "Flags": 8.0, + "DefaultValue": -999.0, + "UIObject": "Default", + "sscVariableName": "", + "sscVariableValue": "" + }, + "field_gathering_num_wells_calc": { + "Version": 4.0, + "Type": 1.0, + "Label": "", + "Units": "", + "Group": "", + "IndexLabels": "", + "Flags": 8.0, + "DefaultValue": -999.0, + "UIObject": "Default", + "sscVariableName": "", + "sscVariableValue": "" + }, + "geo_financial_model": { + "Version": 4.0, + "Type": 1.0, + "Label": "", + "Units": "", + "Group": "", + "IndexLabels": "", + "Flags": 8.0, + "DefaultValue": -999.0, + "UIObject": "Default", + "sscVariableName": "", + "sscVariableValue": "" + }, + "geothermal_analysis_period": { + "Version": 4.0, + "Type": 1.0, + "Label": "", + "Units": "", + "Group": "", + "IndexLabels": "", + "Flags": 8.0, + "DefaultValue": -999.0, + "UIObject": "Default", + "sscVariableName": "", + "sscVariableValue": "" + }, + "gross_cost_output_calc": { + "Version": 4.0, + "Type": 1.0, + "Label": "", + "Units": "", + "Group": "", + "IndexLabels": "", + "Flags": 8.0, + "DefaultValue": -999.0, + "UIObject": "Default", + "sscVariableName": "", + "sscVariableValue": "" + }, + "gross_output_calc": { + "Version": 4.0, + "Type": 1.0, + "Label": "", + "Units": "", + "Group": "", + "IndexLabels": "", + "Flags": 8.0, + "DefaultValue": -999.0, + "UIObject": "Default", + "sscVariableName": "", + "sscVariableValue": "" + }, + "indirect_cost_calc": { + "Version": 4.0, + "Type": 1.0, + "Label": "", + "Units": "", + "Group": "", + "IndexLabels": "", + "Flags": 8.0, + "DefaultValue": -999.0, + "UIObject": "Default", + "sscVariableName": "", + "sscVariableValue": "" + }, + "indirect_pump_cost_calc": { + "Version": 4.0, + "Type": 1.0, + "Label": "", + "Units": "", + "Group": "", + "IndexLabels": "", + "Flags": 8.0, + "DefaultValue": -999.0, + "UIObject": "Default", + "sscVariableName": "", + "sscVariableValue": "" + }, + "inj_num_pumps_calc": { + "Version": 4.0, + "Type": 1.0, + "Label": "", + "Units": "", + "Group": "", + "IndexLabels": "", + "Flags": 8.0, + "DefaultValue": -999.0, + "UIObject": "Default", + "sscVariableName": "", + "sscVariableValue": "" + }, + "inj_pump_cost_calc": { + "Version": 4.0, + "Type": 1.0, + "Label": "", + "Units": "", + "Group": "", + "IndexLabels": "", + "Flags": 8.0, + "DefaultValue": -999.0, + "UIObject": "Default", + "sscVariableName": "", + "sscVariableValue": "" + }, + "inj_pump_cost_per_pump_calc": { + "Version": 4.0, + "Type": 1.0, + "Label": "", + "Units": "", + "Group": "", + "IndexLabels": "", + "Flags": 8.0, + "DefaultValue": -999.0, + "UIObject": "Default", + "sscVariableName": "", + "sscVariableValue": "" + }, + "inj_pump_hp_calc": { + "Version": 4.0, + "Type": 1.0, + "Label": "", + "Units": "", + "Group": "", + "IndexLabels": "", + "Flags": 8.0, + "DefaultValue": -999.0, + "UIObject": "Default", + "sscVariableName": "", + "sscVariableValue": "" + }, + "inj_total_cost_calc": { + "Version": 4.0, + "Type": 1.0, + "Label": "", + "Units": "", + "Group": "", + "IndexLabels": "", + "Flags": 8.0, + "DefaultValue": -999.0, + "UIObject": "Default", + "sscVariableName": "", + "sscVariableValue": "" + }, + "inj_well_cost_calc": { + "Version": 4.0, + "Type": 1.0, + "Label": "", + "Units": "", + "Group": "", + "IndexLabels": "", + "Flags": 8.0, + "DefaultValue": -999.0, + "UIObject": "Default", + "sscVariableName": "", + "sscVariableValue": "" + }, + "installed_cost_per_kW_calc": { + "Version": 4.0, + "Type": 1.0, + "Label": "", + "Units": "", + "Group": "", + "IndexLabels": "", + "Flags": 8.0, + "DefaultValue": -999.0, + "UIObject": "Default", + "sscVariableName": "", + "sscVariableValue": "" + }, + "is_success_auto_exec": { + "Version": 4.0, + "Type": 1.0, + "Label": "Is success auto exec", + "Units": "", + "Group": "", + "IndexLabels": "", + "Flags": 8.0, + "DefaultValue": -999.0, + "UIObject": "Default", + "sscVariableName": "", + "sscVariableValue": "" + }, + "net_plant_output_calc": { + "Version": 4.0, + "Type": 1.0, + "Label": "", + "Units": "", + "Group": "", + "IndexLabels": "", + "Flags": 8.0, + "DefaultValue": -999.0, + "UIObject": "Default", + "sscVariableName": "", + "sscVariableValue": "" + }, + "num_confirm_wells_to_production_calc": { + "Version": 4.0, + "Type": 1.0, + "Label": "adfaf", + "Units": "", + "Group": "", + "IndexLabels": "", + "Flags": 8.0, + "DefaultValue": -999.0, + "UIObject": "Default", + "sscVariableName": "", + "sscVariableValue": "" + }, + "num_wells_calc": { + "Version": 4.0, + "Type": 1.0, + "Label": "", + "Units": "", + "Group": "", + "IndexLabels": "", + "Flags": 8.0, + "DefaultValue": -999.0, + "UIObject": "Default", + "sscVariableName": "", + "sscVariableValue": "" + }, + "num_wells_getem_inj_calc": { + "Version": 4.0, + "Type": 1.0, + "Label": "", + "Units": "", + "Group": "", + "IndexLabels": "", + "Flags": 8.0, + "DefaultValue": -999.0, + "UIObject": "Default", + "sscVariableName": "", + "sscVariableValue": "" + }, + "num_wells_getem_inj_drilled_calc": { + "Version": 4.0, + "Type": 1.0, + "Label": "", + "Units": "", + "Group": "", + "IndexLabels": "", + "Flags": 8.0, + "DefaultValue": -999.0, + "UIObject": "Default", + "sscVariableName": "", + "sscVariableValue": "" + }, + "num_wells_getem_prod_drilled_calc": { + "Version": 4.0, + "Type": 1.0, + "Label": "", + "Units": "", + "Group": "", + "IndexLabels": "", + "Flags": 8.0, + "DefaultValue": -999.0, + "UIObject": "Default", + "sscVariableName": "", + "sscVariableValue": "" + }, + "num_wells_getem_prod_inj_sum_calc": { + "Version": 4.0, + "Type": 1.0, + "Label": "nu", + "Units": "", + "Group": "", + "IndexLabels": "", + "Flags": 8.0, + "DefaultValue": -999.0, + "UIObject": "Default", + "sscVariableName": "", + "sscVariableValue": "" + }, + "piping_cost_per_well_calc": { + "Version": 4.0, + "Type": 1.0, + "Label": "", + "Units": "", + "Group": "", + "IndexLabels": "", + "Flags": 8.0, + "DefaultValue": -999.0, + "UIObject": "Default", + "sscVariableName": "", + "sscVariableValue": "" + }, + "plant_brine_eff_calc": { + "Version": 4.0, + "Type": 1.0, + "Label": "", + "Units": "", + "Group": "", + "IndexLabels": "", + "Flags": 8.0, + "DefaultValue": -999.0, + "UIObject": "Default", + "sscVariableName": "", + "sscVariableValue": "" + }, + "plm_total_cost_calc": { + "Version": 4.0, + "Type": 1.0, + "Label": "", + "Units": "", + "Group": "", + "IndexLabels": "", + "Flags": 8.0, + "DefaultValue": -999.0, + "UIObject": "Default", + "sscVariableName": "", + "sscVariableValue": "" + }, + "prod_inj_total_cost_calc": { + "Version": 4.0, + "Type": 1.0, + "Label": "", + "Units": "", + "Group": "", + "IndexLabels": "", + "Flags": 8.0, + "DefaultValue": -999.0, + "UIObject": "Default", + "sscVariableName": "", + "sscVariableValue": "" + }, + "prod_pump_cost_calc": { + "Version": 4.0, + "Type": 1.0, + "Label": "", + "Units": "", + "Group": "", + "IndexLabels": "", + "Flags": 8.0, + "DefaultValue": -999.0, + "UIObject": "Default", + "sscVariableName": "", + "sscVariableValue": "" + }, + "prod_pump_cost_per_well_calc": { + "Version": 4.0, + "Type": 1.0, + "Label": "", + "Units": "", + "Group": "", + "IndexLabels": "", + "Flags": 8.0, + "DefaultValue": -999.0, + "UIObject": "Default", + "sscVariableName": "", + "sscVariableValue": "" + }, + "prod_total_cost_calc": { + "Version": 4.0, + "Type": 1.0, + "Label": "", + "Units": "", + "Group": "", + "IndexLabels": "", + "Flags": 8.0, + "DefaultValue": -999.0, + "UIObject": "Default", + "sscVariableName": "", + "sscVariableValue": "" + }, + "prod_well_cost_calc": { + "Version": 4.0, + "Type": 1.0, + "Label": "", + "Units": "", + "Group": "", + "IndexLabels": "", + "Flags": 8.0, + "DefaultValue": -999.0, + "UIObject": "Default", + "sscVariableName": "", + "sscVariableValue": "" + }, + "pump_cost_install_calc": { + "Version": 4.0, + "Type": 1.0, + "Label": "pump cost install calc", + "Units": "", + "Group": "", + "IndexLabels": "", + "Flags": 8.0, + "DefaultValue": -999.0, + "UIObject": "Default", + "sscVariableName": "", + "sscVariableValue": "" + }, + "pump_depth_ft_calc": { + "Version": 4.0, + "Type": 1.0, + "Label": "", + "Units": "", + "Group": "", + "IndexLabels": "", + "Flags": 8.0, + "DefaultValue": -999.0, + "UIObject": "Default", + "sscVariableName": "", + "sscVariableValue": "" + }, + "pump_only_cost_calc": { + "Version": 4.0, + "Type": 1.0, + "Label": "pump only cost calc", + "Units": "", + "Group": "", + "IndexLabels": "", + "Flags": 8.0, + "DefaultValue": -999.0, + "UIObject": "Default", + "sscVariableName": "", + "sscVariableValue": "" + }, + "pump_size_hp_calc": { + "Version": 4.0, + "Type": 1.0, + "Label": "", + "Units": "", + "Group": "", + "IndexLabels": "", + "Flags": 8.0, + "DefaultValue": -999.0, + "UIObject": "Default", + "sscVariableName": "", + "sscVariableValue": "" + }, + "pump_watthr_per_lb_calc": { + "Version": 4.0, + "Type": 1.0, + "Label": "", + "Units": "", + "Group": "", + "IndexLabels": "", + "Flags": 8.0, + "DefaultValue": -999.0, + "UIObject": "Default", + "sscVariableName": "", + "sscVariableValue": "" + }, + "pump_work_calc": { + "Version": 4.0, + "Type": 1.0, + "Label": "", + "Units": "", + "Group": "", + "IndexLabels": "", + "Flags": 8.0, + "DefaultValue": -999.0, + "UIObject": "Default", + "sscVariableName": "", + "sscVariableValue": "" + }, + "pumpwork_inj_calc": { + "Version": 4.0, + "Type": 1.0, + "Label": "", + "Units": "", + "Group": "", + "IndexLabels": "", + "Flags": 8.0, + "DefaultValue": -999.0, + "UIObject": "Default", + "sscVariableName": "", + "sscVariableValue": "" + }, + "pumpwork_prod_calc": { + "Version": 4.0, + "Type": 1.0, + "Label": "pumpwork_prod_calc", + "Units": "", + "Group": "", + "IndexLabels": "", + "Flags": 8.0, + "DefaultValue": -999.0, + "UIObject": "Default", + "sscVariableName": "", + "sscVariableValue": "" + }, + "reservoir_avg_temp_calc": { + "Version": 4.0, + "Type": 1.0, + "Label": "", + "Units": "", + "Group": "", + "IndexLabels": "", + "Flags": 8.0, + "DefaultValue": -999.0, + "UIObject": "Default", + "sscVariableName": "", + "sscVariableValue": "" + }, + "reservoir_pressure_calc": { + "Version": 4.0, + "Type": 1.0, + "Label": "", + "Units": "", + "Group": "", + "IndexLabels": "", + "Flags": 8.0, + "DefaultValue": -999.0, + "UIObject": "Default", + "sscVariableName": "", + "sscVariableValue": "" + }, + "sales_tax_cost_calc": { + "Version": 4.0, + "Type": 1.0, + "Label": "", + "Units": "", + "Group": "", + "IndexLabels": "", + "Flags": 8.0, + "DefaultValue": -999.0, + "UIObject": "Default", + "sscVariableName": "", + "sscVariableValue": "" + }, + "stim_cost_per_well_calc": { + "Version": 4.0, + "Type": 1.0, + "Label": "", + "Units": "", + "Group": "", + "IndexLabels": "", + "Flags": 8.0, + "DefaultValue": -999.0, + "UIObject": "Default", + "sscVariableName": "", + "sscVariableValue": "" + }, + "stim_total_cost_calc": { + "Version": 4.0, + "Type": 1.0, + "Label": "", + "Units": "", + "Group": "", + "IndexLabels": "", + "Flags": 8.0, + "DefaultValue": -999.0, + "UIObject": "Default", + "sscVariableName": "", + "sscVariableValue": "" + }, + "sum_prod_inj_total_cost_calc": { + "Version": 4.0, + "Type": 1.0, + "Label": "", + "Units": "", + "Group": "", + "IndexLabels": "", + "Flags": 8.0, + "DefaultValue": -999.0, + "UIObject": "Default", + "sscVariableName": "", + "sscVariableValue": "" + }, + "system_capacity_calc": { + "Version": 4.0, + "Type": 1.0, + "Label": "", + "Units": "", + "Group": "", + "IndexLabels": "", + "Flags": 8.0, + "DefaultValue": -999.0, + "UIObject": "Default", + "sscVariableName": "", + "sscVariableValue": "" + }, + "system_recapitalization_cost_calc": { + "Version": 4.0, + "Type": 1.0, + "Label": "", + "Units": "", + "Group": "", + "IndexLabels": "", + "Flags": 8.0, + "DefaultValue": -999.0, + "UIObject": "Default", + "sscVariableName": "", + "sscVariableValue": "" + }, + "total_capital_cost_calc": { + "Version": 4.0, + "Type": 1.0, + "Label": "", + "Units": "", + "Group": "", + "IndexLabels": "", + "Flags": 8.0, + "DefaultValue": -999.0, + "UIObject": "Default", + "sscVariableName": "", + "sscVariableValue": "" + }, + "total_direct_cost_calc": { + "Version": 4.0, + "Type": 1.0, + "Label": "", + "Units": "", + "Group": "", + "IndexLabels": "", + "Flags": 8.0, + "DefaultValue": -999.0, + "UIObject": "Default", + "sscVariableName": "", + "sscVariableValue": "" + }, + "total_drilling_cost_calc": { + "Version": 4.0, + "Type": 1.0, + "Label": "", + "Units": "", + "Group": "", + "IndexLabels": "", + "Flags": 8.0, + "DefaultValue": -999.0, + "UIObject": "Default", + "sscVariableName": "", + "sscVariableValue": "" + }, + "total_drilling_cost_used_calc": { + "Version": 4.0, + "Type": 1.0, + "Label": "", + "Units": "", + "Group": "", + "IndexLabels": "", + "Flags": 8.0, + "DefaultValue": -999.0, + "UIObject": "Default", + "sscVariableName": "", + "sscVariableValue": "" + }, + "total_gathering_cost_calc": { + "Version": 4.0, + "Type": 1.0, + "Label": "", + "Units": "", + "Group": "", + "IndexLabels": "", + "Flags": 8.0, + "DefaultValue": -999.0, + "UIObject": "Default", + "sscVariableName": "", + "sscVariableValue": "" + }, + "total_getem_om_cost_calc": { + "Version": 4.0, + "Type": 1.0, + "Label": "OM costs calc", + "Units": "", + "Group": "", + "IndexLabels": "", + "Flags": 8.0, + "DefaultValue": -999.0, + "UIObject": "Default", + "sscVariableName": "", + "sscVariableValue": "" + }, + "total_installed_cost_calc": { + "Version": 4.0, + "Type": 1.0, + "Label": "", + "Units": "", + "Group": "", + "IndexLabels": "", + "Flags": 8.0, + "DefaultValue": -999.0, + "UIObject": "Default", + "sscVariableName": "", + "sscVariableValue": "" + }, + "total_plant_cost_calc": { + "Version": 4.0, + "Type": 1.0, + "Label": "", + "Units": "", + "Group": "", + "IndexLabels": "", + "Flags": 8.0, + "DefaultValue": -999.0, + "UIObject": "Default", + "sscVariableName": "", + "sscVariableValue": "" + }, + "total_plant_cost_used_calc": { + "Version": 4.0, + "Type": 1.0, + "Label": "", + "Units": "", + "Group": "", + "IndexLabels": "", + "Flags": 8.0, + "DefaultValue": -999.0, + "UIObject": "Default", + "sscVariableName": "", + "sscVariableValue": "" + }, + "total_pump_cost_calc": { + "Version": 4.0, + "Type": 1.0, + "Label": "", + "Units": "", + "Group": "", + "IndexLabels": "", + "Flags": 8.0, + "DefaultValue": -999.0, + "UIObject": "Default", + "sscVariableName": "", + "sscVariableValue": "" + }, + "total_pump_gathering_cost_used_calc": { + "Version": 4.0, + "Type": 1.0, + "Label": "", + "Units": "", + "Group": "", + "IndexLabels": "", + "Flags": 8.0, + "DefaultValue": -999.0, + "UIObject": "Default", + "sscVariableName": "", + "sscVariableValue": "" + }, + "total_surface_equipment_cost_calc": { + "Version": 4.0, + "Type": 1.0, + "Label": "", + "Units": "", + "Group": "", + "IndexLabels": "", + "Flags": 8.0, + "DefaultValue": -999.0, + "UIObject": "Default", + "sscVariableName": "", + "sscVariableValue": "" + } + }, + "Equations": [ + "equations{ 'geo_financial_model' } = define() {\r", + "\tif (financing() == \"Single Owner\"){\r", + "\t\treturn 1;\r", + "\t}\r", + "\telse if(financing() == \"Leveraged Partnership Flip\"){\r", + "\t\treturn 2;\r", + "\t}\r", + "\telse if(financing() == \"All Equity Partnership Flip\"){\r", + "\t\treturn 3;\r", + "\t}\r", + "\telse if(financing() == \"Sale Leaseback\"){\r", + "\t\treturn 4;\r", + "\t}\r", + "\telse if(financing() == \"Commercial\"){\r", + "\t\treturn 5;\r", + "\t}\r", + "\telse if(financing() == \"Merchant Plant\"){\r", + "\t\treturn 6;\r", + "\t}\r", + "\telse if(financing() == \"LCOE Calculator\"){\r", + "\t\treturn 7;\r", + "\t}\r", + "\telse if(financing() == \"None\"){\r", + "\t\treturn 8;\r", + "\t}\r", + "\telse{\r", + "\t\treturn -1;\r", + "\t}\r", + "};\r", + "\r", + "equations{ '$MIMO$ ui_mspt_system_design__mspt_cmod' } = define()\r", + "{\r", + "\tobj = ssc_create();\r", + "\t\r", + "\tgeo_fin_model = ${geo_financial_model};\r", + "\r", + "\t//#ssc_auto_exec(obj, 'geothermal', 2);\r", + "\t\r", + "\t//ret_d = ssc_dump(obj, 'geothermal_ssc_auto_exec.lk');\r", + "\t\r", + "\tif(geo_fin_model < 8){\r", + "\t\tret = ssc_exec(obj, 'geothermal');\r", + "\t}\r", + "\telse{\r", + "\t\tret = ssc_exec(obj, 'geothermal_no_fin');\r", + "\t}\r", + "\t\r", + "\tif(ret == 0)\r", + "\t{\r", + "\t\t${is_success_auto_exec} = 1;\r", + "\t\t${geothermal_analysis_period} = ssc_var(obj, 'geothermal_analysis_period');\r", + "\t\t\r", + "\t\t${design_temp_calc} = ssc_var(obj, \"design_temp\");\r", + "\t\t\r", + "\t\t${plant_brine_eff_calc} = ssc_var( obj, 'plant_brine_eff');\r", + "\t\t${gross_output_calc} = ssc_var(obj, \"gross_output\");\r", + "\t\t${gross_cost_output_calc} = ssc_var(obj, \"gross_cost_output\");\r", + "\t\t\r", + "\t\t${num_wells_calc} = ssc_var(obj, \"num_wells_getem_output\");\r", + "\t\t${num_wells_getem_inj_calc} = ssc_var(obj, \"num_wells_getem_inj\");\r", + "\t\t${num_wells_getem_prod_drilled_calc} = ssc_var(obj, \"num_wells_getem_prod_drilled\");\r", + "\t\t${num_wells_getem_inj_drilled_calc} = ssc_var(obj, \"num_wells_getem_inj_drilled\");\r", + "\t\t\r", + "\t\t${pump_watthr_per_lb_calc} = ssc_var(obj, \"pump_watthr_per_lb\");\r", + "\t\t${pumpwork_prod_calc} = ssc_var(obj, \"pumpwork_prod\");\r", + "\t\t${pump_size_hp_calc} = ssc_var(obj, \"pump_size_hp\");\r", + "\t\t${pumpwork_inj_calc} = ssc_var(obj, \"pumpwork_inj\");\r", + "\t\t${pump_depth_ft_calc} = ssc_var(obj, \"pump_depth_ft\");\r", + "\t\t${inj_pump_hp_calc} = ssc_var(obj, \"inj_pump_hp\");\r", + "\t\t${pump_work_calc} = ssc_var(obj, \"pump_work\");\r", + "\t\t\r", + "\t\t${reservoir_pressure_calc} = ssc_var(obj, \"reservoir_pressure\");\r", + "\t\t${reservoir_avg_temp_calc} = ssc_var(obj, \"reservoir_avg_temp\");\r", + "\t\t${bottom_hole_pressure_calc} = ssc_var(obj, \"bottom_hole_pressure\");\r", + "\t\t\r", + "\t\t${net_plant_output_calc} = ssc_var(obj, \"net_plant_output\");\r", + "\t\t${system_capacity_calc} = ssc_var(obj, \"system_capacity\");\r", + "\t\t\r", + "\t\t${num_confirm_wells_to_production_calc} = ssc_var(obj, 'num_confirm_wells_to_production');\r", + "\t\t\r", + "\t\tif(geo_fin_model < 8){\r", + "\t\t\t${baseline_cost_calc} = ssc_var(obj, 'baseline_cost');\r", + "\t\t\t${total_pump_cost_calc} = ssc_var(obj, 'total_pump_cost');\r", + "\r", + "\t\t\t${total_gathering_cost_calc} = ssc_var(obj, 'total_gathering_cost');\r", + "\t\t\t${pump_cost_install_calc} = ssc_var(obj, 'pump_cost_install');\r", + "\t\t\t${pump_only_cost_calc} = ssc_var(obj, 'pump_only_cost');\r", + "\t\t\t${prod_pump_cost_per_well_calc} = ssc_var(obj, 'prod_pump_cost_per_well');\r", + "\t\t\t${inj_pump_cost_per_pump_calc} = ssc_var(obj, 'inj_pump_cost_per_pump');\r", + "\t\t\t${inj_num_pumps_calc} = ssc_var(obj, 'inj_num_pumps');\r", + "\t\t\t\t\r", + "\t\t\t${prod_pump_cost_calc} = ssc_var(obj, 'prod_pump_cost');\r", + "\t\t\t${inj_pump_cost_calc} = ssc_var(obj, 'inj_pump_cost');\r", + "\t\t\t${indirect_pump_cost_calc} = ssc_var(obj, 'indirect_pump_gathering_cost');\r", + "\t\t\t${total_pump_gathering_cost_used_calc} = ssc_var(obj, 'total_pump_gathering_cost_used');\r", + "\t\t\t\r", + "\t\t\t${total_surface_equipment_cost_calc} = ssc_var(obj, 'total_surface_equipment_cost');\r", + "\r", + "\t\t\t${sum_prod_inj_total_cost_calc} = ssc_var(obj, 'sum_prod_inj_total_cost');\r", + "\t\t\t${prod_inj_total_cost_calc} = ssc_var(obj, 'prod_inj_total_cost');\r", + "\r", + "\t\t\t${piping_cost_per_well_calc} = ssc_var(obj, 'piping_cost_per_well');\r", + "\t\t\t${field_gathering_num_wells_calc} = ssc_var(obj, 'field_gathering_num_wells');\r", + "\t\t\t${stim_cost_per_well_calc} = ssc_var(obj, 'stim_cost_per_well');\r", + "\t\t\t${stim_total_cost_calc} = ssc_var(obj, 'stim_total_cost');\r", + "\r", + "\t\t\t${num_wells_getem_prod_inj_sum_calc} = ssc_var(obj, 'num_wells_getem_prod_inj_sum');\r", + "\r", + "\t\t\t${expl_total_cost_calc} = ssc_var(obj, 'expl_total_cost');\r", + "\t\t\t${expl_drilling_cost_calc} = ssc_var(obj, 'expl_drilling_cost');\r", + "\t\t\t${conf_total_cost_calc} = ssc_var(obj, 'conf_total_cost');\r", + "\t\t\t${conf_drilling_cost_calc} = ssc_var(obj, 'conf_drilling_cost');\r", + "\t\t\t${expl_cost_per_well_calc} = ssc_var(obj, 'expl_cost_per_well');\r", + "\t\t\t\r", + "\t\t\t${prod_well_cost_calc} = ssc_var(obj, 'prod_well_cost');\r", + "\t\t\t${prod_total_cost_calc} = ssc_var(obj, 'prod_total_cost');\r", + "\t\t\t${inj_well_cost_calc} = ssc_var(obj, 'inj_well_cost');\r", + "\t\t\t${inj_total_cost_calc} = ssc_var(obj, 'inj_total_cost');\r", + "\t\t\t${total_drilling_cost_calc} = ssc_var(obj, 'total_drilling_cost');\r", + "\t\t\t${total_drilling_cost_used_calc} = ssc_var(obj, 'total_drilling_cost_used');\r", + "\r", + "\t\t\t${total_plant_cost_calc} = ssc_var(obj, 'total_plant_cost');\r", + "\t\t\t${total_plant_cost_used_calc} = ssc_var(obj, 'total_plant_cost_used');\r", + "\r", + "\t\t\t${system_recapitalization_cost_calc} = ssc_var(obj, 'system_recapitalization_cost');\r", + "\t\t\t${total_capital_cost_calc} = ssc_var(obj, 'total_capital_cost');\r", + "\t\t\t${contingency_cost_calc} = ssc_var(obj, 'contingency_cost');\r", + "\t\t\t${total_direct_cost_calc} = ssc_var(obj, 'total_direct_cost');\r", + "\t\t\t${epc_total_cost_calc} = ssc_var(obj, 'epc_total_cost');\r", + "\t\t\t${plm_total_cost_calc} = ssc_var(obj, 'plm_total_cost');\r", + "\t\t\t${sales_tax_cost_calc} = ssc_var(obj, 'sales_tax_cost');\r", + "\t\t\t${indirect_cost_calc} = ssc_var(obj, 'indirect_cost');\r", + "\t\t\t${total_installed_cost_calc} = ssc_var(obj, 'total_installed_cost');\r", + "\t\t\t${installed_cost_per_kW_calc} = ssc_var(obj, 'installed_cost_per_kW');\r", + "\r", + "\t\t\tif(geo_fin_model < 7){\r", + "\t\t\t\t${total_getem_om_cost_calc} = ssc_var(obj, 'total_getem_om_cost');\r", + "\t\t\t\t${construction_financing_cost_calc} = ssc_var(obj, 'construction_financing_cost');\r", + "\t\t\t}\r", + "\t\t\telse{\r", + "\t\t\t\tskip = -567;\r", + "\t\t\t\t${total_getem_om_cost_calc} = skip;\r", + "\t\t\t\t${construction_financing_cost_calc} = skip;\r", + "\t\t\t}\r", + "\t\t}\r", + "\t}\r", + "\telse{\r", + "\t\t\r", + "\t\tfail = -6789;\r", + "\t\t\r", + "\t\t${is_success_auto_exec} = fail;\r", + "\t\t\r", + "\t\t${geothermal_analysis_period} = -1;\r", + "\t\t\r", + "\t\t${design_temp_calc} = fail;\r", + "\t\t\r", + "\t\t${plant_brine_eff_calc} = fail;\r", + "\t\t${gross_output_calc} = fail;\r", + "\t\t${gross_cost_output_calc} = fail;\r", + "\t\t\r", + "\t\t${num_wells_calc} = fail;\r", + "\t\t${num_wells_getem_inj_calc} = fail;\r", + "\t\t${num_wells_getem_prod_drilled_calc} = fail;\r", + "\t\t${num_wells_getem_inj_drilled_calc} = fail;\r", + "\t\t\r", + "\t\t${pump_watthr_per_lb_calc} = fail;\r", + "\t\t${pumpwork_prod_calc} = fail;\r", + "\t\t${pump_size_hp_calc} = fail;\r", + "\t\t${pumpwork_inj_calc} = fail;\r", + "\t\t${pump_depth_ft_calc} = fail;\r", + "\t\t${inj_pump_hp_calc} = fail;\r", + "\t\t${pump_work_calc} = fail;\r", + "\t\t\r", + "\t\t${reservoir_pressure_calc} = fail;\r", + "\t\t${reservoir_avg_temp_calc} = fail;\r", + "\t\t${bottom_hole_pressure_calc} = fail;\r", + "\t\t\r", + "\t\t${net_plant_output_calc} = fail;\r", + "\t\t${system_capacity_calc} = fail;\r", + "\t\t\r", + "\t\t${baseline_cost_calc} = fail;\r", + "\t\t${total_pump_cost_calc} = fail;\r", + "\t\t\r", + "\t\t${total_gathering_cost_calc} = fail;\r", + "\t\t${pump_cost_install_calc} = fail;\r", + "\t\t${pump_only_cost_calc} = fail;\r", + "\t\t${prod_pump_cost_per_well_calc} = fail;\r", + "\t\t${inj_pump_cost_per_pump_calc} = fail;\r", + "\t\t${inj_num_pumps_calc} = fail;\r", + "\t\t\r", + "\t\t${prod_pump_cost_calc} = fail;\r", + "\t\t${inj_pump_cost_calc} = fail;\r", + "\t\t${indirect_pump_cost_calc} = fail;\r", + "\t\t${total_pump_gathering_cost_used_calc} = fail;\r", + "\t\t\r", + "\t\t${total_surface_equipment_cost_calc} = fail; \r", + "\t\t\r", + "\t\t${sum_prod_inj_total_cost_calc} = fail;\r", + "\t\t${prod_inj_total_cost_calc} = fail;\r", + "\t\t\r", + "\t\t${piping_cost_per_well_calc} = fail;\r", + "\t\t${field_gathering_num_wells_calc} = fail;\r", + "\t\t${stim_cost_per_well_calc} = fail;\r", + "\t\t${stim_total_cost_calc} = fail;\r", + "\t\t\r", + "\t\t${num_wells_getem_prod_inj_sum_calc} = fail;\r", + "\t\t\r", + "\t\t${expl_total_cost_calc} = fail;\r", + "\t\t${expl_drilling_cost_calc} = fail;\r", + "\t\t${conf_total_cost_calc} = fail;\r", + "\t\t${conf_drilling_cost_calc} = fail;\r", + "\t\t${expl_cost_per_well_calc} = fail;\r", + "\t\t${num_confirm_wells_to_production_calc} = fail;\r", + "\t\t\r", + "\t\t${prod_well_cost_calc} = fail;\r", + "\t\t${prod_total_cost_calc} = fail;\r", + "\t\t${inj_well_cost_calc} = fail;\r", + "\t\t${inj_total_cost_calc} = fail;\r", + "\t\t${total_drilling_cost_calc} = fail;\r", + "\t\t${total_plant_cost_used_calc} = fail;\r", + "\t\t\r", + "\t\t${total_plant_cost_calc} = fail;\r", + "\t\t${total_plant_cost_used_calc} = fail;\r", + "\t\t\r", + "\t\t${system_recapitalization_cost_calc} = fail;\r", + "\t\t${total_capital_cost_calc} = fail;\r", + "\t\t${contingency_cost_calc} = fail;\r", + "\t\t${total_direct_cost_calc} = fail;\r", + "\t\t${epc_total_cost_calc} = fail;\r", + "\t\t${plm_total_cost_calc} = fail;\r", + "\t\t${sales_tax_cost_calc} = fail;\r", + "\t\t${indirect_cost_calc} = fail;\r", + "\t\t${total_installed_cost_calc} = fail;\r", + "\t\t${installed_cost_per_kW_calc} = fail;\r", + "\t\t\r", + "\t\t${total_getem_om_cost_calc} = fail;\r", + "\t\t\r", + "\t\t${construction_financing_cost_calc} = fail;\r", + "\t}\r", + "\t\r", + "};" + ], + "Callbacks": [] +} \ No newline at end of file