Geothermal

Wrapper for SAM Simulation Core model: cmod_geothermal.cpp

Input Consistency Warning

As described in Possible Problems, some input parameters are interdependent but the equations that enforce consistency are not available in this PySAM module. Therefore, the onus is on the PySAM user to check that interdependencies are correctly handled. The variables which may require additional logic include:

  • T_htf_hot_ref
  • ambient_pressure
  • analysis_type
  • casing_size
  • conversion_subtype
  • conversion_type
  • decline_type
  • delta_pressure_equip
  • design_temp
  • excess_pressure_pump
  • fracture_angle
  • fracture_aperature
  • fracture_width
  • geothermal_analysis_period
  • hr_pl_nlev
  • inj_prod_well_distance
  • inj_well_diam
  • model_choice
  • nameplate
  • num_fractures
  • num_wells
  • num_wells_getem
  • plant_efficiency_input
  • pump_efficiency
  • reservoir_height
  • 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

Provided for each of these inputs is a list of other inputs that are potentially interdependent.

Creating an Instance

Refer to the Initializing a Model page for details on the different ways to create an instance of a PySAM class.

Geothermal model description

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

PySAM.Geothermal.default(config) → Geothermal

Use default attributes config options:

  • “GeothermalPowerAllEquityPartnershipFlip”
  • “GeothermalPowerLCOECalculator”
  • “GeothermalPowerLeveragedPartnershipFlip”
  • “GeothermalPowerMerchantPlant”
  • “GeothermalPowerNone”
  • “GeothermalPowerSaleLeaseback”
  • “GeothermalPowerSingleOwner”
PySAM.Geothermal.from_existing(data, optional config) → Geothermal

Share underlying data with an existing PySAM class. If config provided, default attributes are loaded otherwise.

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

Use existing PySSC data

Warning

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

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: True if ui_calculations_only=0

Type:float
HTF

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

Constraints: INTEGER

Required: True if ui_calculations_only=0

Type:float
P_boil

Design Boiler Pressure [bar]

Required: True if ui_calculations_only=0

Type:float
P_cond_min

Minimum condenser pressure [in Hg]

Required: True if ui_calculations_only=0

Type:float
P_cond_ratio

Condenser pressure ratio

Required: True if ui_calculations_only=0

Type:float
T_ITD_des

Design ITD for dry system [C]

Required: True if ui_calculations_only=0

Type:float
T_amb_des

Design ambient temperature [C]

Required: True if ui_calculations_only=0

Type:float
T_approach

Approach Temperature [C]

Required: True if ui_calculations_only=0

Type:float
T_htf_cold_ref

Outlet design temp [C]

Required: True if ui_calculations_only=0

Type:float
T_htf_hot_ref

Inlet design temp [C]

Required: True if ui_calculations_only=0

This variable may need to be updated if the values of the following have changed:
  • design_temp
  • resource_temp
Type:float
ambient_pressure

Ambient pressure [psi]

Required: True

Changes to this variable may require updating the values of the following:
  • num_wells_getem
Type:float
analysis_type

Analysis Type

Constraints: INTEGER

Required: True

Changes to this variable may require updating the values of the following:
  • num_wells_getem
Type:float
casing_size

Production pump casing size [in]

Required: True

Changes to this variable may require updating the values of the following:
  • num_wells_getem
Type:float
conversion_subtype

Conversion Subtype

Constraints: INTEGER

Required: True

Changes to this variable may require updating the values of the following:
  • num_wells_getem
Type:float
conversion_type

Conversion Type

Constraints: INTEGER

Required: True

Changes to this variable may require updating the values of the following:
  • num_wells_getem
Type:float
dT_cw_ref

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

Required: True if ui_calculations_only=0

Type:float
decline_type

Temp decline Type

Constraints: INTEGER

Required: True

Changes to this variable may require updating the values of the following:
  • num_wells_getem
Type:float
delta_pressure_equip

Delta pressure across surface equipment [psi]

Required: True

Changes to this variable may require updating the values of the following:
  • num_wells_getem
Type:float
design_temp

Power block design temperature [C]

Required: True

Changes to this variable may require updating the values of the following:
  • T_htf_hot_ref
  • num_wells_getem
This variable may need to be updated if the values of the following have changed:
  • resource_temp
Type:float
eta_ref

Desgin conversion efficiency [%]

Required: True if ui_calculations_only=0

Type:float
excess_pressure_pump

Excess pressure @ pump suction [psi]

Required: True

Changes to this variable may require updating the values of the following:
  • num_wells_getem
Type:float
file_name

local weather file path

Constraints: LOCAL_FILE

Required: True if ui_calculations_only=0

Type:str
fracture_angle

Fracture angle [deg]

Required: True

Changes to this variable may require updating the values of the following:
  • num_wells_getem
Type:float
fracture_aperature

Fracture aperature [m]

Required: True

Changes to this variable may require updating the values of the following:
  • num_wells_getem
Type:float
fracture_width

Fracture width [m]

Required: True

Changes to this variable may require updating the values of the following:
  • num_wells_getem
Type:float
geothermal_analysis_period

Analysis Lifetime [years]

Constraints: INTEGER

Required: True

Changes to this variable may require updating the values of the following:
  • num_wells_getem
Type:float
hc_ctl1

HC Control 1

Required: True if ui_calculations_only=0

Type:float
hc_ctl2

HC Control 2

Required: True if ui_calculations_only=0

Type:float
hc_ctl3

HC Control 3

Required: True if ui_calculations_only=0

Type:float
hc_ctl4

HC Control 4

Required: True if ui_calculations_only=0

Type:float
hc_ctl5

HC Control 5

Required: True if ui_calculations_only=0

Type:float
hc_ctl6

HC Control 6

Required: True if ui_calculations_only=0

Type:float
hc_ctl7

HC Control 7

Required: True if ui_calculations_only=0

Type:float
hc_ctl8

HC Control 8

Required: True if ui_calculations_only=0

Type:float
hc_ctl9

HC Control 9

Required: True if ui_calculations_only=0

Type:float
hr_pl_nlev

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

Constraints: INTEGER

Required: True if ui_calculations_only=0

Changes to this variable may require updating the values of the following:
  • num_wells_getem
Type:float
hybrid_dispatch_schedule

Daily dispatch schedule

Constraints: TOUSCHED

Required: True if ui_calculations_only=0

Type:str
inj_prod_well_distance

Distance from injection to production wells [m]

Required: True

Changes to this variable may require updating the values of the following:
  • num_wells_getem
Type:float
inj_well_diam

Injection well diameter [in]

Required: True

Changes to this variable may require updating the values of the following:
  • num_wells_getem
Type:float
model_choice

Which model to run (0,1,2)

Constraints: INTEGER

Required: True

Changes to this variable may require updating the values of the following:
  • num_wells_getem
Type:float
nameplate

Desired plant output [kW]

Required: True

Changes to this variable may require updating the values of the following:
  • num_wells_getem
Type:float
num_fractures

Number of fractures

Constraints: INTEGER

Required: True

Changes to this variable may require updating the values of the following:
  • num_wells_getem
Type:float
num_wells

Number of Wells

Required: True

Changes to this variable may require updating the values of the following:
  • num_wells_getem
Type:float
num_wells_getem

Number of Wells GETEM calc’d

Required: True if ui_calculations_only=0

This variable may need to be updated if the values of the following have changed:
  • ambient_pressure
  • analysis_type
  • casing_size
  • conversion_subtype
  • conversion_type
  • decline_type
  • delta_pressure_equip
  • design_temp
  • excess_pressure_pump
  • fracture_angle
  • fracture_aperature
  • fracture_width
  • geothermal_analysis_period
  • hr_pl_nlev
  • inj_prod_well_distance
  • inj_well_diam
  • model_choice
  • nameplate
  • num_fractures
  • num_wells
  • plant_efficiency_input
  • pump_efficiency
  • reservoir_height
  • 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: True if ui_calculations_only=0

Type:float
plant_efficiency_input

Plant efficiency

Required: True

Changes to this variable may require updating the values of the following:
  • num_wells_getem
Type:float
pump_efficiency

Pump efficiency [%]

Required: True

Changes to this variable may require updating the values of the following:
  • num_wells_getem
Type:float
q_sby_frac

% thermal power for standby mode [%]

Required: True if ui_calculations_only=0

Type:float
reservoir_height

Reservoir height [m]

Required: True

Changes to this variable may require updating the values of the following:
  • num_wells_getem
Type:float
reservoir_permeability

Reservoir Permeability [darcys]

Required: True

Changes to this variable may require updating the values of the following:
  • num_wells_getem
Type:float
reservoir_pressure_change

Pressure change [psi-h/1000lb]

Required: True

Changes to this variable may require updating the values of the following:
  • num_wells_getem
Type:float
reservoir_pressure_change_type

Reservoir pressure change type

Constraints: INTEGER

Required: True

Changes to this variable may require updating the values of the following:
  • num_wells_getem
Type:float
reservoir_width

Reservoir width [m]

Required: True

Changes to this variable may require updating the values of the following:
  • num_wells_getem
Type:float
resource_depth

Resource Depth [m]

Required: True

Changes to this variable may require updating the values of the following:
  • num_wells_getem
Type:float
resource_potential

Resource Potential [MW]

Required: True if ui_calculations_only=0

Type:float
resource_temp

Resource Temperature [C]

Required: True

Changes to this variable may require updating the values of the following:
  • T_htf_hot_ref
  • design_temp
  • num_wells_getem
Type:float
resource_type

Type of Resource

Constraints: INTEGER

Required: True

Changes to this variable may require updating the values of the following:
  • num_wells_getem
Type:float
rock_density

Rock density [kg/m^3]

Required: True

Changes to this variable may require updating the values of the following:
  • num_wells_getem
Type:float
rock_specific_heat

Rock specific heat [J/kg-C]

Required: True

Changes to this variable may require updating the values of the following:
  • num_wells_getem
Type:float
rock_thermal_conductivity

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

Required: True

Changes to this variable may require updating the values of the following:
  • num_wells_getem
Type:float
specified_pump_work_amount

Pump work specified by user [MW]

Required: True

Changes to this variable may require updating the values of the following:
  • num_wells_getem
Type:float
specify_pump_work

Did user specify pump work? [0 or 1]

Constraints: INTEGER

Required: True

Changes to this variable may require updating the values of the following:
  • num_wells_getem
Type:float
startup_frac

% thermal power for startup [%]

Required: True if ui_calculations_only=0

Type:float
startup_time

Hours to start power block [hours]

Required: True if ui_calculations_only=0

Type:float
subsurface_water_loss

Subsurface water loss [%]

Required: True

Changes to this variable may require updating the values of the following:
  • num_wells_getem
Type:float
system_use_lifetime_output

Geothermal lifetime simulation [0/1]

Options: 0=SingleYearRepeated,1=RunEveryYear

Constraints: BOOLEAN

Required: If not provided, assumed to be 0

Type:float
temp_decline_max

Maximum temperature decline [C]

Required: True

Changes to this variable may require updating the values of the following:
  • num_wells_getem
Type:float
temp_decline_rate

Temperature decline rate [%/yr]

Required: True

Changes to this variable may require updating the values of the following:
  • 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

Changes to this variable may require updating the values of the following:
  • num_wells_getem
Type:float
well_flow_rate

Production flow rate per well [kg/s]

Required: True

Changes to this variable may require updating the values of the following:
  • num_wells_getem
Type:float
wet_bulb_temp

Wet Bulb Temperature [C]

Required: True

Changes to this variable may require updating the values of the following:
  • 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_output

Gross output from GETEM

Type:float
hp_flash_pressure

HP Flash Pressure [psia]

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_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_work

Pump work calculated by GETEM [MW]

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 in each time step [C]

Type:sequence
timestep_pressure

Atmospheric pressure in each time step [atm]

Type:sequence
timestep_resource_temperature

Resource temperature in each time step [C]

Type:sequence
timestep_test_values

Test output values in each time step

Type:sequence
timestep_wet_bulb

Wet bulb temperature in each time step [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