Geothermal

Geothermal power model for hydrothermal and EGS systems with flash or binary conversion

PySAM.Geothermal.default(config) Geothermal

Load defaults for the configuration config. Available configurations are:

  • “GeothermalPowerAllEquityPartnershipFlip”

  • “GeothermalPowerLCOECalculator”

  • “GeothermalPowerLeveragedPartnershipFlip”

  • “GeothermalPowerMerchantPlant”

  • “GeothermalPowerNone”

  • “GeothermalPowerSaleLeaseback”

  • “GeothermalPowerSingleOwner”

Note

Some inputs do not have default values and may be assigned a value from the variable’s Required attribute. See variable attribute descriptions below.

PySAM.Geothermal.from_existing(data, optional config) Geothermal

Share data with an existing PySAM class. If optional config is a valid configuration name, load the module’s defaults for that configuration.

PySAM.Geothermal.new() Geothermal
PySAM.Geothermal.wrap(ssc_data_t) Geothermal

Load data from a PySSC object.

Warning

Do not call PySSC.data_free on the ssc_data_t provided to wrap()

Geothermal is a wrapper for the SSC compute module cmod_geothermal.cpp

Interdependent Variables

The variables listed below are interdependent with other variables. If you change the value of one of these variables, you may need to change values of other variables. The SAM user interface manages these interdependent variables, but in PySAM, it is up to you change the value of all interdependent variables so they are consistent. See Interdependent Variables for examples and details.

  • T_htf_hot_ref

  • ambient_pressure

  • analysis_type

  • conversion_subtype

  • conversion_type

  • decline_type

  • delta_pressure_equip

  • design_temp

  • drilling_success_rate

  • dt_prod_well

  • excess_pressure_pump

  • failed_prod_flow_ratio

  • fracture_angle

  • fracture_aperature

  • fracture_length

  • fracture_spacing

  • fracture_width

  • geothermal_analysis_period

  • hr_pl_nlev

  • inj_prod_well_distance

  • injectivity_index

  • model_choice

  • nameplate

  • num_fractures

  • num_wells

  • num_wells_getem

  • plant_efficiency_input

  • prod_well_choice

  • pump_efficiency

  • reservoir_height

  • reservoir_model_inputs

  • reservoir_permeability

  • reservoir_pressure_change

  • reservoir_pressure_change_type

  • reservoir_width

  • resource_depth

  • resource_temp

  • resource_type

  • rock_density

  • rock_specific_heat

  • rock_thermal_conductivity

  • specified_pump_work_amount

  • specify_pump_work

  • stim_success_rate

  • subsurface_water_loss

  • temp_decline_max

  • temp_decline_rate

  • use_weather_file_conditions

  • well_flow_rate

  • wet_bulb_temp

Functions

class PySAM.Geothermal.Geothermal

This class contains all the variable information for running a simulation. Variables are grouped together in the subclasses as properties. If property assignments are the wrong type, an error is thrown.

assign(dict) None

Assign attributes from nested dictionary, except for Outputs

nested_dict = { 'GeoHourly': { var: val, ...}, ...}

execute(int verbosity) None

Execute simulation with verbosity level 0 (default) or 1

export() dict

Export attributes into nested dictionary

get_data_ptr() Pointer

Get ssc_data_t pointer

replace(dict) None

Replace attributes from nested dictionary, except for Outputs. Unassigns all values in each Group then assigns from the input dict.

nested_dict = { 'GeoHourly': { var: val, ...}, ...}

unassign(name) None

Unassign a value in any of the variable groups.

value(name, optional value) None | float | dict | sequence | str

Get or set by name a value in any of the variable groups.

GeoHourly Group

class PySAM.Geothermal.Geothermal.GeoHourly
assign(dict) None

Assign attributes from dictionary, overwriting but not removing values.

GeoHourly_vals = { var: val, ...}

export() dict

Export attributes into dictionary.

replace(dict) None

Replace attributes from dictionary, unassigning values not present in input dict.

GeoHourly_vals = { var: val, ...}

CT

Condenser type (Wet, Dry,Hybrid) [(1-3)]

Constraints: INTEGER

Required: Required if ui_calculations_only=0

Type:

float

HTF

Heat trans fluid type ID [(1-27)]

Constraints: INTEGER

Required: Required if ui_calculations_only=0

Type:

float

P_boil

Design Boiler Pressure [bar]

Required: Required if ui_calculations_only=0

Type:

float

P_cond_min

Minimum condenser pressure [in Hg]

Required: Required if ui_calculations_only=0

Type:

float

P_cond_ratio

Condenser pressure ratio

Required: Required if ui_calculations_only=0

Type:

float

T_ITD_des

Design ITD for dry system [C]

Required: Required if ui_calculations_only=0

Type:

float

T_amb_des

Design ambient temperature [C]

Required: Required if ui_calculations_only=0

Type:

float

T_approach

Approach Temperature [C]

Required: Required if ui_calculations_only=0

Type:

float

T_htf_cold_ref

Outlet design temp [C]

Required: Required if ui_calculations_only=0

Type:

float

T_htf_hot_ref

Inlet design temp [C]

Required: Required if ui_calculations_only=0

The value of T_htf_hot_ref depends on the following variables:

  • design_temp

  • resource_temp

  • resource_type

Type:

float

ambient_pressure

Ambient pressure [psi]

Required: True

The value of the following variables depends on ambient_pressure:

  • num_wells_getem

Type:

float

analysis_type

Analysis Type

Constraints: INTEGER

Required: True

The value of the following variables depends on analysis_type:

  • num_wells_getem

Type:

float

conversion_subtype

Conversion Subtype

Constraints: INTEGER

Required: True

The value of the following variables depends on conversion_subtype:

  • num_wells_getem

Type:

float

conversion_type

Conversion Type

Constraints: INTEGER

Required: True

The value of the following variables depends on conversion_type:

  • num_wells_getem

Type:

float

dT_cw_ref

Design condenser cooling water inlet/outlet T diff [C]

Required: Required if ui_calculations_only=0

Type:

float

decline_type

Temp decline Type

Constraints: INTEGER

Required: True

The value of the following variables depends on decline_type:

  • num_wells_getem

Type:

float

delta_pressure_equip

Delta pressure across surface equipment [psi]

Required: True

The value of the following variables depends on delta_pressure_equip:

  • num_wells_getem

Type:

float

design_temp

Power block design temperature [C]

Required: True

The value of the following variables depends on design_temp:

  • T_htf_hot_ref

  • num_wells_getem

The value of design_temp depends on the following variables:

  • resource_temp

  • resource_type

Type:

float

drilling_success_rate

Drilling success rate [%]

The value of the following variables depends on drilling_success_rate:

  • num_wells_getem

Type:

float

dt_prod_well

Temperature loss in production well [C]

Required: True

The value of the following variables depends on dt_prod_well:

  • num_wells_getem

Type:

float

eta_ref

Desgin conversion efficiency [%]

Required: Required if ui_calculations_only=0

Type:

float

excess_pressure_pump

Excess pressure @ pump suction [psi]

Required: True

The value of the following variables depends on excess_pressure_pump:

  • num_wells_getem

Type:

float

exploration_wells_production

Exploration wells used for production

Required: True

Type:

float

failed_prod_flow_ratio

Failed production well flow ratio

The value of the following variables depends on failed_prod_flow_ratio:

  • num_wells_getem

Type:

float

file_name

local weather file path

Constraints: LOCAL_FILE

Required: Required if ui_calculations_only=0

Type:

str

fracture_angle

Fracture angle [deg]

Required: True

The value of the following variables depends on fracture_angle:

  • num_wells_getem

Type:

float

fracture_aperature

Fracture aperature [m]

Required: True

The value of the following variables depends on fracture_aperature:

  • num_wells_getem

Type:

float

fracture_length

Fracture length [m]

Required: True

The value of the following variables depends on fracture_length:

  • num_wells_getem

Type:

float

fracture_spacing

Fracture spacing [m]

Required: True

The value of the following variables depends on fracture_spacing:

  • num_wells_getem

Type:

float

fracture_width

Fracture width [m]

Required: True

The value of the following variables depends on fracture_width:

  • num_wells_getem

Type:

float

geotherm_cost_inj_cost_curve_welldiam

Injection well diameter type [0/1]

Options: 0=LargerDiameter,1=SmallerDiameter

Required: True

Type:

float

geotherm_cost_inj_cost_curve_welltype

Injection well type [0/1]

Required: True

Type:

float

geotherm_cost_inj_prod_well_ratio

Ratio of injection wells to production wells

Type:

float

geotherm_cost_prod_cost_curve_welldiam

Production well diameter type [0/1]

Options: 0=LargerDiameter,1=SmallerDiameter

Required: True

Type:

float

geotherm_cost_prod_cost_curve_welltype

Production well type [0/1]

Required: True

Type:

float

geothermal_analysis_period

Analysis Lifetime [years]

Constraints: INTEGER

Required: True

The value of the following variables depends on geothermal_analysis_period:

  • num_wells_getem

Type:

float

hc_ctl1

HC Control 1

Required: Required if ui_calculations_only=0

Type:

float

hc_ctl2

HC Control 2

Required: Required if ui_calculations_only=0

Type:

float

hc_ctl3

HC Control 3

Required: Required if ui_calculations_only=0

Type:

float

hc_ctl4

HC Control 4

Required: Required if ui_calculations_only=0

Type:

float

hc_ctl5

HC Control 5

Required: Required if ui_calculations_only=0

Type:

float

hc_ctl6

HC Control 6

Required: Required if ui_calculations_only=0

Type:

float

hc_ctl7

HC Control 7

Required: Required if ui_calculations_only=0

Type:

float

hc_ctl8

HC Control 8

Required: Required if ui_calculations_only=0

Type:

float

hc_ctl9

HC Control 9

Required: Required if ui_calculations_only=0

Type:

float

hr_pl_nlev

# part-load increments [(0-9)]

Constraints: INTEGER

Required: Required if ui_calculations_only=0

The value of the following variables depends on hr_pl_nlev:

  • num_wells_getem

Type:

float

hybrid_dispatch_schedule

Daily dispatch schedule

Constraints: TOUSCHED

Required: Required if ui_calculations_only=0

Type:

str

inj_prod_well_distance

Distance from injection to production wells [m]

Required: True

The value of the following variables depends on inj_prod_well_distance:

  • num_wells_getem

Type:

float

injectivity_index

Injectivity index [lb/hr-psi]

Required: True

The value of the following variables depends on injectivity_index:

  • num_wells_getem

Type:

float

model_choice

Which model to run (0,1,2)

Constraints: INTEGER

Required: True

The value of the following variables depends on model_choice:

  • num_wells_getem

Type:

float

nameplate

Desired plant output [kW]

Required: True

The value of the following variables depends on nameplate:

  • num_wells_getem

Type:

float

num_fractures

Number of fractures

Constraints: INTEGER

Required: True

The value of the following variables depends on num_fractures:

  • num_wells_getem

Type:

float

num_wells

Number of Wells

Required: True

The value of the following variables depends on num_wells:

  • num_wells_getem

Type:

float

num_wells_getem

Number of Wells GETEM calc’d

Required: Required if ui_calculations_only=0

The value of num_wells_getem depends on the following variables:

  • ambient_pressure

  • analysis_type

  • conversion_subtype

  • conversion_type

  • decline_type

  • delta_pressure_equip

  • design_temp

  • drilling_success_rate

  • dt_prod_well

  • excess_pressure_pump

  • failed_prod_flow_ratio

  • fracture_angle

  • fracture_aperature

  • fracture_length

  • fracture_spacing

  • fracture_width

  • geothermal_analysis_period

  • hr_pl_nlev

  • inj_prod_well_distance

  • injectivity_index

  • model_choice

  • nameplate

  • num_fractures

  • num_wells

  • plant_efficiency_input

  • prod_well_choice

  • pump_efficiency

  • reservoir_height

  • reservoir_model_inputs

  • reservoir_permeability

  • reservoir_pressure_change

  • reservoir_pressure_change_type

  • reservoir_width

  • resource_depth

  • resource_temp

  • resource_type

  • rock_density

  • rock_specific_heat

  • rock_thermal_conductivity

  • specified_pump_work_amount

  • specify_pump_work

  • stim_success_rate

  • subsurface_water_loss

  • temp_decline_max

  • temp_decline_rate

  • use_weather_file_conditions

  • well_flow_rate

  • wet_bulb_temp

Type:

float

pb_bd_frac

Blowdown steam fraction [%]

Required: Required if ui_calculations_only=0

Type:

float

plant_efficiency_input

Plant efficiency

Required: True

The value of the following variables depends on plant_efficiency_input:

  • num_wells_getem

Type:

float

prod_well_choice

Temperature loss in production well choice [0/1]

Required: True

The value of the following variables depends on prod_well_choice:

  • num_wells_getem

Type:

float

pump_efficiency

Pump efficiency [%]

Required: True

The value of the following variables depends on pump_efficiency:

  • num_wells_getem

Type:

float

q_sby_frac

% thermal power for standby mode [%]

Required: Required if ui_calculations_only=0

Type:

float

reservoir_height

Reservoir height [m]

Required: True

The value of the following variables depends on reservoir_height:

  • num_wells_getem

Type:

float

reservoir_model_inputs

Reservoir temperatures over time

Required: Required if reservoir_pressure_change_type=3

The value of the following variables depends on reservoir_model_inputs:

  • num_wells_getem

Type:

sequence[sequence]

reservoir_permeability

Reservoir Permeability [darcys]

Required: True

The value of the following variables depends on reservoir_permeability:

  • num_wells_getem

Type:

float

reservoir_pressure_change

Pressure change [psi-h/1000lb]

Required: True

The value of the following variables depends on reservoir_pressure_change:

  • num_wells_getem

Type:

float

reservoir_pressure_change_type

Reservoir pressure change type

Constraints: INTEGER

Required: True

The value of the following variables depends on reservoir_pressure_change_type:

  • num_wells_getem

Type:

float

reservoir_width

Reservoir width [m]

Required: True

The value of the following variables depends on reservoir_width:

  • num_wells_getem

Type:

float

resource_depth

Resource Depth [m]

Required: True

The value of the following variables depends on resource_depth:

  • num_wells_getem

Type:

float

resource_potential

Resource Potential [MW]

Required: Required if ui_calculations_only=0

Type:

float

resource_temp

Resource Temperature [C]

Constraints: MAX=373

Required: True

The value of the following variables depends on resource_temp:

  • T_htf_hot_ref

  • design_temp

  • num_wells_getem

Type:

float

resource_type

Type of Resource

Constraints: INTEGER

Required: True

The value of the following variables depends on resource_type:

  • T_htf_hot_ref

  • design_temp

  • num_wells_getem

Type:

float

rock_density

Rock density [kg/m^3]

Required: True

The value of the following variables depends on rock_density:

  • num_wells_getem

Type:

float

rock_specific_heat

Rock specific heat [J/kg-C]

Required: True

The value of the following variables depends on rock_specific_heat:

  • num_wells_getem

Type:

float

rock_thermal_conductivity

Rock thermal conductivity [J/m-day-C]

Required: True

The value of the following variables depends on rock_thermal_conductivity:

  • num_wells_getem

Type:

float

specified_pump_work_amount

Pump work specified by user [MW]

Required: True

The value of the following variables depends on specified_pump_work_amount:

  • num_wells_getem

Type:

float

specify_pump_work

Did user specify pump work? [0 or 1]

Constraints: INTEGER

Required: True

The value of the following variables depends on specify_pump_work:

  • num_wells_getem

Type:

float

startup_frac

% thermal power for startup [%]

Required: Required if ui_calculations_only=0

Type:

float

startup_time

Hours to start power block [hours]

Required: Required if ui_calculations_only=0

Type:

float

stim_success_rate

Stimulation success rate [%]

The value of the following variables depends on stim_success_rate:

  • num_wells_getem

Type:

float

subsurface_water_loss

Subsurface water loss [%]

Required: True

The value of the following variables depends on subsurface_water_loss:

  • num_wells_getem

Type:

float

system_use_lifetime_output

Geothermal lifetime simulation [0/1]

Options: 0=SingleYearRepeated,1=RunEveryYear

Constraints: BOOLEAN

Required: False. Automatically set to 0 if not assigned explicitly or loaded from defaults.

Type:

float

temp_decline_max

Maximum temperature decline [C]

Required: True

The value of the following variables depends on temp_decline_max:

  • num_wells_getem

Type:

float

temp_decline_rate

Temperature decline rate [%/yr]

Required: True

The value of the following variables depends on temp_decline_rate:

  • num_wells_getem

Type:

float

ui_calculations_only

If = 1, only run UI calculations

Required: True

Type:

float

use_weather_file_conditions

Use weather file ambient temperature [0/1]

Required: False. Automatically set to 0 if not assigned explicitly or loaded from defaults.

The value of the following variables depends on use_weather_file_conditions:

  • num_wells_getem

  • wet_bulb_temp

Type:

float

well_flow_rate

Production flow rate per well [kg/s]

Required: True

The value of the following variables depends on well_flow_rate:

  • num_wells_getem

Type:

float

wet_bulb_temp

Wet Bulb Temperature [C]

Required: True

The value of the following variables depends on wet_bulb_temp:

  • num_wells_getem

The value of wet_bulb_temp depends on the following variables:

  • use_weather_file_conditions

Type:

float

AdjustmentFactors Group

class PySAM.AdjustmentFactors.AdjustmentFactors
assign() None

Assign attributes from dictionary

export() Dict

Export attributes into dictionary

constant

AC Constant loss adjustment [%]

dc_constant

DC Constant loss adjustment [%]

dc_en_hourly

Enable DC hourly-based adjustment factors [0/1]

dc_en_periods

Enable DC period-based adjustment factors [0/1]

dc_en_timeindex

Enable DC lfetime adjustment factors [0/1]

dc_hourly

DC Hourly Adjustment Factors [%]

dc_periods

DC Period-based Adjustment Factors [%]

dc_timeindex

DC Lifetime Adjustment Factors [%]

en_hourly

Enable AC hourly-based adjustment factors [0/1]

en_periods

Enable AC period-based adjustment factors [0/1]

en_timeindex

Enable AC lfetime adjustment factors [0/1]

hourly

AC Hourly Adjustment Factors [%]

periods

AC Period-based Adjustment Factors [%]

sf_constant

DC Constant loss adjustment [%]

sf_en_hourly

Enable SF hourly-based adjustment factors [0/1]

sf_en_periods

Enable SF period-based adjustment factors [0/1]

sf_en_timeindex

Enable SF lfetime adjustment factors [0/1]

sf_hourly

SF Hourly Adjustment Factors [%]

sf_periods

SF Period-based Adjustment Factors [%]

sf_timeindex

SF Lifetime Adjustment Factors [%]

timeindex

AC Lifetime Adjustment Factors [%]

Outputs Group

class PySAM.Geothermal.Geothermal.Outputs
assign(dict) None

Assign attributes from dictionary, overwriting but not removing values.

Outputs_vals = { var: val, ...}

export() dict

Export attributes into dictionary.

replace(dict) None

Replace attributes from dictionary, unassigning values not present in input dict.

Outputs_vals = { var: val, ...}

GF_flowrate

GF Flow Rate [lb/h]

Type:

float

annual_energy

Annual Energy [kWh]

Type:

float

annual_energy_distribution_time

Annual energy production as function of Time

Type:

sequence[sequence]

bottom_hole_pressure

Bottom hole pres calculated by GETEM

Type:

float

capacity_factor

Capacity factor

Type:

float

condensate_pump_power

hp

Type:

float

cw_pump_head

Cooling Water Pump Head [lb/h]

Type:

float

cw_pump_work

CW Pump Work [kW]

Type:

float

cwflow

Cooling Water Flow [lb/h]

Type:

float

eff_secondlaw

Second Law Efficiency [C]

Type:

float

first_year_output

First Year Output [kWh]

Type:

float

flash_count

Flash Count [(1 -2)]

Type:

float

gen

System power generated [kW]

Type:

sequence

gross_cost_output

Gross output from GETEM for cost

Type:

float

gross_output

Gross output from GETEM

Type:

float

hp_flash_pressure

HP Flash Pressure [psia]

Type:

float

inj_pump_hp

Injection Pump horsepower [hp]

Type:

float

kwh_per_kw

First year kWh/kW

Type:

float

lifetime_output

Lifetime Output [kWh]

Type:

float

lp_flash_pressure

LP Flash Pressure [psia]

Type:

float

monthly_energy

AC energy (year 1) [kWh/mo]

Type:

sequence

monthly_energy_lifetime

Monthly energy before performance adjustments [kWh]

Type:

sequence

monthly_power

Monthly power [kW]

Type:

sequence

monthly_resource_temperature

Monthly avg resource temperature [C]

Type:

sequence

ncg_condensate_pump

Condensate Pump Work [kW]

Type:

float

num_wells_getem_inj

Number of wells calculated by GETEM

Type:

float

num_wells_getem_output

Number of wells calculated by GETEM

Type:

float

plant_brine_eff

Plant Brine Efficiency

Type:

float

pressure_ratio_1

Suction Steam Ratio 1

Type:

float

pressure_ratio_2

Suction Steam Ratio 2

Type:

float

pressure_ratio_3

Suction Steam Ratio 3

Type:

float

pump_depth_ft

Pump depth calculated by GETEM [ft]

Type:

float

pump_hp

Pump hp calculated by GETEM [hp]

Type:

float

pump_watthr_per_lb

Pump work Efficiency

Type:

float

pump_work

Pump work calculated by GETEM [MW]

Type:

float

pumpwork_inj

Injection Pump work Efficiency

Type:

float

pumpwork_prod

Production Pump work Efficiency

Type:

float

qCondenser

Condenser Heat Rejected [btu/h]

Type:

float

qRejectByStage_1

Heat Rejected by NCG Condenser Stage 1 [BTU/h]

Type:

float

qRejectByStage_2

Heat Rejected by NCG Condenser Stage 2 [BTU/h]

Type:

float

qRejectByStage_3

Heat Rejected by NCG Condenser Stage 3 [BTU/h]

Type:

float

qRejectTotal

Total Heat Rejection [btu/h]

Type:

float

reservoir_avg_temp

Avg reservoir temp calculated by GETEM [C]

Type:

float

reservoir_pressure

Reservoir pres calculated by GETEM

Type:

float

spec_vol

HP Specific Volume [cft/lb]

Type:

float

spec_vol_lp

LP Specific Volume [cft/lb]

Type:

float

system_lifetime_recapitalize

Resource replacement? (1=yes)

Type:

sequence

timestep_dry_bulb

Dry bulb temperature [C]

Type:

sequence

timestep_pressure

Atmospheric pressure [atm]

Type:

sequence

timestep_resource_temperature

Resource temperature [C]

Type:

sequence

timestep_test_values

Test output values in each time step

Type:

sequence

timestep_wet_bulb

Wet bulb temperature [C]

Type:

sequence

v_stage_1

Vacumm Pump Stage 1 [kW]

Type:

float

v_stage_2

Vacumm Pump Stage 2 [kW]

Type:

float

v_stage_3

Vacumm Pump Stage 3 [kW]

Type:

float

x_hp

HP Mass Fraction [%]

Type:

float

x_lp

LP Mass Fraction [%]

Type:

float