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