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
  • casing_size
  • conversion_subtype
  • conversion_type
  • decline_type
  • delta_pressure_equip
  • design_temp
  • dt_prod_well
  • excess_pressure_pump
  • fracture_angle
  • fracture_aperature
  • fracture_length
  • fracture_spacing
  • fracture_width
  • geothermal_analysis_period
  • hr_pl_nlev
  • inj_casing_size
  • inj_prod_well_distance
  • inj_well_diam
  • 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
  • subsurface_water_loss
  • temp_decline_max
  • temp_decline_rate
  • well_diameter
  • 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

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) → Union[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
casing_size

Production pump casing size [in]

Required: True

The value of the following variables depends on casing_size:

  • 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
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
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_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_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_casing_size

Injection pump casing size [in]

Required: True

The value of the following variables depends on inj_casing_size:

  • num_wells_getem
Type:float
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
inj_well_diam

Injection well diameter [in]

Required: True

The value of the following variables depends on inj_well_diam:

  • 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
  • casing_size
  • conversion_subtype
  • conversion_type
  • decline_type
  • delta_pressure_equip
  • design_temp
  • dt_prod_well
  • excess_pressure_pump
  • fracture_angle
  • fracture_aperature
  • fracture_length
  • fracture_spacing
  • fracture_width
  • geothermal_analysis_period
  • hr_pl_nlev
  • inj_casing_size
  • inj_prod_well_distance
  • inj_well_diam
  • 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
  • subsurface_water_loss
  • temp_decline_max
  • temp_decline_rate
  • well_diameter
  • 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]

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
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
well_diameter

Production well diameter [in]

Required: True

The value of the following variables depends on well_diameter:

  • num_wells_getem
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
Type:float

AdjustmentFactors Group

class PySAM.Geothermal.Geothermal.AdjustmentFactors
assign() → None

Assign attributes from dictionary

export() → Dict

Export attributes into dictionary

constant

float

Type:type
dc_constant

DC Constant loss adjustment [%]

dc_hourly

DC Hourly Adjustment Factors [%]

dc_periods

DC Period-based Adjustment Factors [%]

hourly

AC Hourly Adjustment Factors [%]

periods

AC Period-based Adjustment Factors [%]

sf_constant

DC Constant loss adjustment [%]

sf_hourly

DC Hourly Adjustment Factors [%]

sf_periods

DC Period-based 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

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