EtesPtes¶
Pumped thermal energy storage

PySAM.EtesPtes.
default
(config) → EtesPtes¶ Load defaults for the configuration
config
. Available configurations are: “PTESSingleOwner”
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.EtesPtes.
from_existing
(data, optional config) → EtesPtes¶ Share data with an existing PySAM class. If
optional config
is a valid configuration name, load the module’s defaults for that configuration.

PySAM.EtesPtes.
new
() → EtesPtes¶

PySAM.EtesPtes.
wrap
(ssc_data_t) → EtesPtes¶ Load data from a PySSC object.
Warning
Do not call PySSC.data_free on the ssc_data_t provided to
wrap()
EtesPtes is a wrapper for the SSC compute module cmod_etes_ptes.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.
 const_per_interest_rate1
 const_per_interest_rate2
 const_per_interest_rate3
 const_per_interest_rate4
 const_per_interest_rate5
 const_per_months1
 const_per_months2
 const_per_months3
 const_per_months4
 const_per_months5
 const_per_percent1
 const_per_percent2
 const_per_percent3
 const_per_percent4
 const_per_percent5
 const_per_upfront_rate1
 const_per_upfront_rate2
 const_per_upfront_rate3
 const_per_upfront_rate4
 const_per_upfront_rate5
Functions¶

class
PySAM.EtesPtes.
EtesPtes
¶ 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 = { 'Solar Resource': { 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 = { 'Solar Resource': { 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.

SolarResource Group¶

class
PySAM.EtesPtes.EtesPtes.
SolarResource
¶ 
assign
(dict) → None¶ Assign attributes from dictionary, overwriting but not removing values.
SolarResource_vals = { var: val, ...}

export
() → dict¶ Export attributes into dictionary.

replace
(dict) → None¶ Replace attributes from dictionary, unassigning values not present in input
dict
.SolarResource_vals = { var: val, ...}

solar_resource_file
¶ Local weather file path
Constraints: LOCAL_FILE
Required: False for configuration with default inputs. May be required if a variable dependent on its value changes. Example: For the Detailed PV  Single Owner configuration, only Subarray 1 is enabled in the configuration defaults, so Subarray 2 inputs would not be required; if Subarray 2 is enabled, then Subarray 2 inputs is required.
Type: str

SystemControl Group¶

class
PySAM.EtesPtes.EtesPtes.
SystemControl
¶ 
assign
(dict) → None¶ Assign attributes from dictionary, overwriting but not removing values.
SystemControl_vals = { var: val, ...}

export
() → dict¶ Export attributes into dictionary.

replace
(dict) → None¶ Replace attributes from dictionary, unassigning values not present in input
dict
.SystemControl_vals = { var: val, ...}

bop_par
¶ Balance of plant parasitic power fraction [MWe/MWcap]
Required: True
Type: float

bop_par_0
¶ Balance of plant parasitic power fraction  const coeff
Required: True
Type: float

bop_par_1
¶ Balance of plant parasitic power fraction  linear coeff
Required: True
Type: float

bop_par_2
¶ Balance of plant parasitic power fraction  quadratic coeff
Required: True
Type: float

bop_par_f
¶ Balance of plant parasitic power fraction  mult frac
Required: True
Type: float

disp_csu_cost
¶ Cycle startup cost [$/MWecycle/start]
Required: Required if is_dispatch=1
Type: float

disp_down_time_min
¶ Minimum time requirement for cycle to not generate power [hr]
Required: Required if is_dispatch=1
Type: float

disp_frequency
¶ Frequency for dispatch optimization calculations [hour]
Required: Required if is_dispatch=1
Type: float

disp_horizon
¶ Time horizon for dispatch optimization [hour]
Required: Required if is_dispatch=1
Type: float

disp_hsu_cost
¶ Heater startup cost [$/MWecycle/start]
Required: Required if is_dispatch=1
Type: float

disp_max_iter
¶ Max number of dispatch optimization iterations
Required: Required if is_dispatch=1
Type: float

disp_mip_gap
¶ Dispatch optimization solution tolerance
Required: Required if is_dispatch=1
Type: float

disp_pen_delta_w
¶ Dispatch cycle production change penalty [$/MWechange]
Required: Required if is_dispatch=1
Type: float

disp_reporting
¶ Dispatch optimization reporting level
Required: False. Automatically set to 1 if not assigned explicitly or loaded from defaults.
Type: float

disp_spec_bb
¶ Dispatch optimization B&B heuristic
Required: False. Automatically set to 1 if not assigned explicitly or loaded from defaults.
Type: float

disp_spec_presolve
¶ Dispatch optimization presolve heuristic
Required: False. Automatically set to 1 if not assigned explicitly or loaded from defaults.
Type: float

disp_spec_scaling
¶ Dispatch optimization scaling heuristic
Required: False. Automatically set to 1 if not assigned explicitly or loaded from defaults.
Type: float

disp_steps_per_hour
¶ Time steps per hour for dispatch optimization calculations
Required: False. Automatically set to 1 if not assigned explicitly or loaded from defaults.
Type: float

disp_time_weighting
¶ Dispatch optimization future time discounting factor
Required: Required if is_dispatch=1
Type: float

disp_timeout
¶ Max dispatch optimization solve duration [s]
Required: Required if is_dispatch=1
Type: float

disp_up_time_min
¶ Minimum time requirement for cycle to generate power [hr]
Required: Required if is_dispatch=1
Type: float

is_dispatch
¶ Allow dispatch optimization?
Required: False. Automatically set to 0 if not assigned explicitly or loaded from defaults.
Type: float

pb_fixed_par
¶ Fixed parasitic load that don’t generate heat  runs at all times [MWe/MWcap]
Required: True
Type: float

sim_type
¶ timeseries, 2: design only
Required: False. Automatically set to 1 if not assigned explicitly or loaded from defaults.
Type: float Type: 1 (default)

time_start
¶ Simulation start time [s]
Required: False. Automatically set to 0 if not assigned explicitly or loaded from defaults.
Type: float

time_steps_per_hour
¶ Number of simulation time steps per hour
Required: False. Automatically set to 1 if not assigned explicitly or loaded from defaults.
Type: float

time_stop
¶ Simulation stop time [s]
Required: False. Automatically set to 31536000 if not assigned explicitly or loaded from defaults.
Type: float

vacuum_arrays
¶ Allocate arrays for only the required number of steps
Required: False. Automatically set to 0 if not assigned explicitly or loaded from defaults.
Type: float

FinancialModel Group¶

class
PySAM.EtesPtes.EtesPtes.
FinancialModel
¶ 
assign
(dict) → None¶ Assign attributes from dictionary, overwriting but not removing values.
FinancialModel_vals = { var: val, ...}

export
() → dict¶ Export attributes into dictionary.

replace
(dict) → None¶ Replace attributes from dictionary, unassigning values not present in input
dict
.FinancialModel_vals = { var: val, ...}

etes_financial_model
¶ [18]
Constraints: INTEGER,MIN=0
Required: False. Automatically set to 1 if not assigned explicitly or loaded from defaults.
Type: float

SystemDesign Group¶

class
PySAM.EtesPtes.EtesPtes.
SystemDesign
¶ 
assign
(dict) → None¶ Assign attributes from dictionary, overwriting but not removing values.
SystemDesign_vals = { var: val, ...}

export
() → dict¶ Export attributes into dictionary.

replace
(dict) → None¶ Replace attributes from dictionary, unassigning values not present in input
dict
.SystemDesign_vals = { var: val, ...}

T_CT_cold_htf_des
¶ CT TES cold temperature [C]
Required: True
Type: float

T_CT_hot_htf_des
¶ CT TES hot temperature [C]
Required: True
Type: float

T_HT_cold_htf_des
¶ HT TES cold temperature [C]
Required: True
Type: float

T_HT_hot_htf_des
¶ HT TES hot temperature [C]
Required: True
Type: float

W_dot_pc_thermo_des
¶ PC design thermodynamic power [MWe]
Required: True
Type: float

cop_hp_thermo_des
¶ Heat pump design thermodynamic heat COP []
Required: True
Type: float

eta_pc_thermo_des
¶ PC design thermodynamic efficiency []
Required: True
Type: float

f_hp_parasitic_des
¶ Heat pump parasitics as fraction of design thermo power in []
Required: True
Type: float

f_pc_parasitic_des
¶ PC parasitics as fraction of design thermo power out []
Required: True
Type: float

heater_mult
¶ Heater multiple relative to design cycle thermal power []
Required: True
Type: float

tshours
¶ Equivalent fullload thermal storage hours [hr]
Required: True
Type: float

ThermalStorage Group¶

class
PySAM.EtesPtes.EtesPtes.
ThermalStorage
¶ 
assign
(dict) → None¶ Assign attributes from dictionary, overwriting but not removing values.
ThermalStorage_vals = { var: val, ...}

export
() → dict¶ Export attributes into dictionary.

replace
(dict) → None¶ Replace attributes from dictionary, unassigning values not present in input
dict
.ThermalStorage_vals = { var: val, ...}

cold_htf_code
¶ Cold HTF code  see htf_props.h for list
Required: True
Type: float

hot_htf_code
¶ Hot HTF code  see htf_props.h for list
Required: True
Type: float

ud_cold_htf_props
¶ Userdefined Cold HTF fluid property data []
Required: Required if cold_htf_code=50
Type: sequence[sequence]

ud_hot_htf_props
¶ Userdefined Hot HTF fluid property data []
Required: Required if hot_htf_code=50
Type: sequence[sequence]

Heater Group¶

class
PySAM.EtesPtes.EtesPtes.
Heater
¶ 
assign
(dict) → None¶ Assign attributes from dictionary, overwriting but not removing values.
Heater_vals = { var: val, ...}

export
() → dict¶ Export attributes into dictionary.

replace
(dict) → None¶ Replace attributes from dictionary, unassigning values not present in input
dict
.Heater_vals = { var: val, ...}

f_q_dot_des_allowable_su
¶ Fraction of design power allowed during startup []
Required: True
Type: float

f_q_dot_heater_min
¶ Minimum allowable heater output as fraction of design
Required: True
Type: float

hrs_startup_at_max_rate
¶ Duration of startup at max startup power [hr]
Required: True
Type: float

PowerCycle Group¶

class
PySAM.EtesPtes.EtesPtes.
PowerCycle
¶ 
assign
(dict) → None¶ Assign attributes from dictionary, overwriting but not removing values.
PowerCycle_vals = { var: val, ...}

export
() → dict¶ Export attributes into dictionary.

replace
(dict) → None¶ Replace attributes from dictionary, unassigning values not present in input
dict
.PowerCycle_vals = { var: val, ...}

CT_pb_pump_coef
¶ COLD TES pumping power to move 1kg of HTF through PB loop [kW/kg/s]
Required: True
Type: float

cycle_cutoff_frac
¶ Minimum turbine operation fraction before shutdown
Required: True
Type: float

cycle_max_frac
¶ Maximum turbine over design operation fraction
Required: True
Type: float

heat_pump_CT_HTF_pump_coef
¶ Cold temp HX pumping power to move 1 kg/s [kW/kg/s]
Required: True
Type: float

heat_pump_HT_HTF_pump_coef
¶ High temp HX pumping power to move 1 kg/s [kW/kg/s]
Required: True
Type: float

pb_pump_coef
¶ COLD TES pumping power to move 1kg of HTF through PB loop [kW/kg/s]
Required: True
Type: float

q_sby_frac
¶ Fraction of thermal power required for standby
Required: True
Type: float

startup_frac
¶ Fraction of design thermal power needed for startup [none]
Required: True
Type: float

startup_time
¶ Time needed for power block startup [hr]
Required: True
Type: float

HotThermalStorage Group¶

class
PySAM.EtesPtes.EtesPtes.
HotThermalStorage
¶ 
assign
(dict) → None¶ Assign attributes from dictionary, overwriting but not removing values.
HotThermalStorage_vals = { var: val, ...}

export
() → dict¶ Export attributes into dictionary.

replace
(dict) → None¶ Replace attributes from dictionary, unassigning values not present in input
dict
.HotThermalStorage_vals = { var: val, ...}

cold_tank_Thtr
¶ HOT TES Minimum allowable cold tank HTF temperature [C]
Required: True
Type: float

cold_tank_max_heat
¶ HOT TES Rated heater capacity for cold tank heating [MW]
Required: True
Type: float

h_tank
¶ HOT TES Total height of tank (height of HTF when tank is full) [m]
Required: True
Type: float

h_tank_min
¶ HOT TES Minimum allowable HTF height in storage tank [m]
Required: True
Type: float

hot_tank_Thtr
¶ HOT TES Minimum allowable hot tank HTF temperature [C]
Required: True
Type: float

hot_tank_max_heat
¶ HOT TES Rated heater capacity for hot tank heating [MW]
Required: True
Type: float

tank_pairs
¶ HOT TES Number of equivalent tank pairs
Constraints: INTEGER
Required: True
Type: float

tes_init_hot_htf_percent
¶ HOT TES Initial fraction of available volume that is hot [%]
Required: True
Type: float

u_tank
¶ HOT TES Loss coefficient from the tank [W/m2K]
Required: True
Type: float

ColdThermalStorage Group¶

class
PySAM.EtesPtes.EtesPtes.
ColdThermalStorage
¶ 
assign
(dict) → None¶ Assign attributes from dictionary, overwriting but not removing values.
ColdThermalStorage_vals = { var: val, ...}

export
() → dict¶ Export attributes into dictionary.

replace
(dict) → None¶ Replace attributes from dictionary, unassigning values not present in input
dict
.ColdThermalStorage_vals = { var: val, ...}

CT_h_tank
¶ COLD TES Total height of tank (height of HTF when tank is full) [m]
Required: True
Type: float

CT_h_tank_min
¶ COLD TES Minimum allowable HTF height in storage tank [m]
Required: True
Type: float

CT_tank_pairs
¶ COLD TES Number of equivalent tank pairs
Constraints: INTEGER
Required: True
Type: float

CT_u_tank
¶ COLD TES Loss coefficient from the tank [W/m2K]
Required: True
Type: float

TimeOfDeliveryFactors Group¶

class
PySAM.EtesPtes.EtesPtes.
TimeOfDeliveryFactors
¶ 
assign
(dict) → None¶ Assign attributes from dictionary, overwriting but not removing values.
TimeOfDeliveryFactors_vals = { var: val, ...}

export
() → dict¶ Export attributes into dictionary.

replace
(dict) → None¶ Replace attributes from dictionary, unassigning values not present in input
dict
.TimeOfDeliveryFactors_vals = { var: val, ...}

dispatch_factor1
¶ Dispatch payment factor 1
Required: Required if ppa_multiplier_model=0&etes_financial_model<5&is_dispatch=1&sim_type=1
Type: float

dispatch_factor2
¶ Dispatch payment factor 2
Required: Required if ppa_multiplier_model=0&etes_financial_model<5&is_dispatch=1&sim_type=1
Type: float

dispatch_factor3
¶ Dispatch payment factor 3
Required: Required if ppa_multiplier_model=0&etes_financial_model<5&is_dispatch=1&sim_type=1
Type: float

dispatch_factor4
¶ Dispatch payment factor 4
Required: Required if ppa_multiplier_model=0&etes_financial_model<5&is_dispatch=1&sim_type=1
Type: float

dispatch_factor5
¶ Dispatch payment factor 5
Required: Required if ppa_multiplier_model=0&etes_financial_model<5&is_dispatch=1&sim_type=1
Type: float

dispatch_factor6
¶ Dispatch payment factor 6
Required: Required if ppa_multiplier_model=0&etes_financial_model<5&is_dispatch=1&sim_type=1
Type: float

dispatch_factor7
¶ Dispatch payment factor 7
Required: Required if ppa_multiplier_model=0&etes_financial_model<5&is_dispatch=1&sim_type=1
Type: float

dispatch_factor8
¶ Dispatch payment factor 8
Required: Required if ppa_multiplier_model=0&etes_financial_model<5&is_dispatch=1&sim_type=1
Type: float

dispatch_factor9
¶ Dispatch payment factor 9
Required: Required if ppa_multiplier_model=0&etes_financial_model<5&is_dispatch=1&sim_type=1
Type: float

dispatch_factors_ts
¶ Dispatch payment factor timeseries array
Required: Required if ppa_multiplier_model=1&etes_financial_model<5&is_dispatch=1&sim_type=1
Type: sequence

dispatch_sched_weekday
¶ PPA pricing weekday schedule, 12x24
Required: Required if ppa_multiplier_model=0&etes_financial_model<5&is_dispatch=1&sim_type=1
Type: sequence[sequence]

dispatch_sched_weekend
¶ PPA pricing weekend schedule, 12x24
Required: Required if ppa_multiplier_model=0&etes_financial_model<5&is_dispatch=1&sim_type=1
Type: sequence[sequence]

ppa_multiplier_model
¶ PPA multiplier model [0/1]
Options: 0=diurnal,1=timestep
Constraints: INTEGER,MIN=0
Required: False. Automatically set to 0 if not assigned explicitly or loaded from defaults.
Type: float

Revenue Group¶

class
PySAM.EtesPtes.EtesPtes.
Revenue
¶ 
assign
(dict) → None¶ Assign attributes from dictionary, overwriting but not removing values.
Revenue_vals = { var: val, ...}

export
() → dict¶ Export attributes into dictionary.

replace
(dict) → None¶ Replace attributes from dictionary, unassigning values not present in input
dict
.Revenue_vals = { var: val, ...}

ppa_price_input
¶ PPA prices  yearly [$/kWh]
Required: Required if ppa_multiplier_model=0&etes_financial_model<5&is_dispatch=1&sim_type=1
Type: sequence

SystemCosts Group¶

class
PySAM.EtesPtes.EtesPtes.
SystemCosts
¶ 
assign
(dict) → None¶ Assign attributes from dictionary, overwriting but not removing values.
SystemCosts_vals = { var: val, ...}

export
() → dict¶ Export attributes into dictionary.

replace
(dict) → None¶ Replace attributes from dictionary, unassigning values not present in input
dict
.SystemCosts_vals = { var: val, ...}

CT_tes_spec_cost
¶ Cold Temp thermal energy storage specific cost [$/kWht]
Required: True
Type: float

bop_spec_cost
¶ Balance of plant specific cost [$/kWe]
Required: True
Type: float

contingency_rate
¶ Contingency for cost overrun [%]
Required: True
Type: float

cycle_spec_cost
¶ Power cycle specific cost [$/kWe]
Required: True
Type: float

epc_cost_fixed
¶ EPC fixed [$]
Required: True
Type: float

epc_cost_per_watt
¶ EPC cost per watt [$/W]
Required: True
Type: float

epc_cost_perc_of_direct
¶ EPC cost percent of direct [%]
Required: True
Type: float

heat_pump_spec_cost
¶ Heater pump specific cost [$/kWht]
Required: True
Type: float

land_cost_fixed
¶ Land fixed [$]
Required: True
Type: float

land_cost_per_watt
¶ Land cost per watt [$/W]
Required: True
Type: float

land_cost_perc_of_direct
¶ Land cost percent of direct [%]
Required: True
Type: float

sales_tax_frac
¶ Percent of cost to which sales tax applies [%]
Required: True
Type: float

tes_spec_cost
¶ Hot Temp thermal energy storage specific cost [$/kWht]
Required: True
Type: float

FinancialParameters Group¶

class
PySAM.EtesPtes.EtesPtes.
FinancialParameters
¶ 
assign
(dict) → None¶ Assign attributes from dictionary, overwriting but not removing values.
FinancialParameters_vals = { var: val, ...}

export
() → dict¶ Export attributes into dictionary.

replace
(dict) → None¶ Replace attributes from dictionary, unassigning values not present in input
dict
.FinancialParameters_vals = { var: val, ...}

const_per_interest_rate1
¶ Interest rate, loan 1 [%]
Required: True
Type: float

const_per_interest_rate2
¶ Interest rate, loan 2 [%]
Required: True
Type: float

const_per_interest_rate3
¶ Interest rate, loan 3 [%]
Required: True
Type: float

const_per_interest_rate4
¶ Interest rate, loan 4 [%]
Required: True
Type: float

const_per_interest_rate5
¶ Interest rate, loan 5 [%]
Required: True
Type: float

const_per_months1
¶ Months prior to operation, loan 1
Required: True
Type: float

const_per_months2
¶ Months prior to operation, loan 2
Required: True
Type: float

const_per_months3
¶ Months prior to operation, loan 3
Required: True
Type: float

const_per_months4
¶ Months prior to operation, loan 4
Required: True
Type: float

const_per_months5
¶ Months prior to operation, loan 5
Required: True
Type: float

const_per_percent1
¶ Percent of total installed cost, loan 1 [%]
Required: True
Type: float

const_per_percent2
¶ Percent of total installed cost, loan 2 [%]
Required: True
Type: float

const_per_percent3
¶ Percent of total installed cost, loan 3 [%]
Required: True
Type: float

const_per_percent4
¶ Percent of total installed cost, loan 4 [%]
Required: True
Type: float

const_per_percent5
¶ Percent of total installed cost, loan 5 [%]
Required: True
Type: float

const_per_upfront_rate1
¶ Upfront fee on principal, loan 1 [%]
Required: True
Type: float

const_per_upfront_rate2
¶ Upfront fee on principal, loan 2 [%]
Required: True
Type: float

const_per_upfront_rate3
¶ Upfront fee on principal, loan 3 [%]
Required: True
Type: float

const_per_upfront_rate4
¶ Upfront fee on principal, loan 4 [%]
Required: True
Type: float

const_per_upfront_rate5
¶ Upfront fee on principal, loan 5 [%]
Required: True
Type: float

sales_tax_rate
¶ Sales tax rate [%]
Required: True
Type: float

AdjustmentFactors Group¶

class
PySAM.EtesPtes.EtesPtes.
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 Periodbased Adjustment Factors [%]

hourly
¶ AC Hourly Adjustment Factors [%]

periods
¶ AC Periodbased Adjustment Factors [%]

sf_constant
¶ DC Constant loss adjustment [%]

sf_hourly
¶ DC Hourly Adjustment Factors [%]

sf_periods
¶ DC Periodbased Adjustment Factors [%]

Outputs Group¶

class
PySAM.EtesPtes.EtesPtes.
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, ...}

COP_net_des
¶ Heat pump net COP [MWe]
Type: float

CT_tes_cost_calc
¶ Cold TES cost [$]
Type: float

E_hp_su_des
¶ Heat pump startup energy [MWthr]
Type: float

Q_CT_tes_des
¶ Cold TES design capacity [MWthr]
Type: float

Q_tes_des
¶ TES design capacity [MWthr]
Type: float

T_CT_tes_cold
¶ TES cold temperature [C]
Type: sequence

T_CT_tes_hot
¶ TES hot temperature [C]
Type: sequence

T_hp_CT_htf_cold_out
¶ Heat pump cold tes HTF outlet temperature [C]
Type: sequence

T_hp_CT_htf_hot_in
¶ Heat pump cold tes HTF inlet temperature [C]
Type: sequence

T_hp_HT_htf_cold_in
¶ Heat pump hot tes HTF inlet temperature [C]
Type: sequence

T_hp_HT_htf_hot_out
¶ Heat pump hot tes HTF outlet temperature [C]
Type: sequence

T_pc_CT_htf_cold_in
¶ PC cold tes HTF inlet temperature [C]
Type: sequence

T_pc_CT_htf_hot_out
¶ PC cold tes HTF outlet temperature [C]
Type: sequence

T_pc_HT_htf_cold_out
¶ PC hot tes HTF outlet temperature [C]
Type: sequence

T_pc_HT_htf_hot_in
¶ PC hot tes HTF inlet temperature [C]
Type: sequence

T_tes_cold
¶ TES cold temperature [C]
Type: sequence

T_tes_hot
¶ TES hot temperature [C]
Type: sequence

V_CT_tes_htf_avail
¶ Volume of cold TES HTF available for heat transfer [m3]
Type: float

V_CT_tes_htf_total
¶ Total cold TES HTF volume [m3]
Type: float

V_tes_htf_avail
¶ Volume of TES HTF available for heat transfer [m3]
Type: float

V_tes_htf_total
¶ Total TES HTF volume [m3]
Type: float

W_dot_bop_design
¶ BOP parasitics at design [MWe]
Type: float

W_dot_bop_parasitics
¶ Parasitic power plant generationdependent laod [MWe]
Type: sequence

W_dot_fixed
¶ Fixed parasitic at design [MWe]
Type: float

W_dot_fixed_parasitics
¶ Parasitic power plant fixed load [MWe]
Type: sequence

W_dot_hp_CT_htf_pump
¶ Heat pump cold tes HTF pump power [MWe]
Type: sequence

W_dot_hp_CT_htf_pump_des
¶ Heat pump CT HTF pump power [MWe]
Type: float

W_dot_hp_HT_htf_pump
¶ Heat pump hot tes HTF pump power [MWe]
Type: sequence

W_dot_hp_HT_htf_pump_des
¶ Heat pump HT HTF pump power [MWe]
Type: float

W_dot_hp_elec_parasitic_des
¶ Heat pump parasitic power [MWe]
Type: float

W_dot_hp_in_net_des
¶ Heat pump total power consumption [MWe]
Type: float

W_dot_hp_in_thermo_des
¶ Heat pump power into working fluid [MWe]
Type: float

W_dot_hp_net
¶ Heat pump total power in [MWe]
Type: sequence

W_dot_hp_parasitics
¶ Heat pump thermodynamic parasitics [MWe]
Type: sequence

W_dot_hp_thermo
¶ Heat pump thermodynamic power in [MWe]
Type: sequence

W_dot_out_net
¶ Total electric power to grid [MWe]
Type: sequence

W_dot_pc_CT_htf_pump
¶ PC cold tes HTF pump power [MWe]
Type: sequence

W_dot_pc_CT_htf_pump_des
¶ Cycle CT HTF pump power [MWe]
Type: float

W_dot_pc_HT_htf_pump
¶ PC hot tes HTF pump power [MWe]
Type: sequence

W_dot_pc_HT_htf_pump_des
¶ Cycle HT HTF pump power [MWe]
Type: float

W_dot_pc_elec_parasitic_des
¶ Cycle parasitic power [MWe]
Type: float

W_dot_pc_net_des
¶ Cycle net power generation [MWe]
Type: float

W_dot_pc_parasitics
¶ PC parasitics including cooling power [MWe]
Type: sequence

W_dot_pc_thermo_out
¶ PC thermodynamic power out [MWe]
Type: sequence

annual_energy
¶ Annual total electric power to grid [kWhe]
Type: float

annual_energy_distribution_time
¶ Annual energy production as function of time [kW]
Type: sequence[sequence]

avg_suboptimal_rel_mip_gap
¶ Average suboptimal relative MIP gap [%]
Type: float

bop_cost_calc
¶ BOP cost [$]
Type: float

charge_capacity
¶ Total electricity consumption at designpoint charge [MWe]
Type: float

construction_financing_cost
¶ Total construction financing cost [$]
Type: float

contingency_cost_calc
¶ Contingency cost [$]
Type: float

cop_hot_hp_thermo
¶ Heat pump thermodynamic hot COP
Type: sequence

cp_battery_nameplate
¶ Battery nameplate [MWe]
Type: float

cp_system_nameplate
¶ System capacity for capacity payments [MWe]
Type: float

cycle_cost_calc
¶ Cycle cost [$]
Type: float

d_CT_tank_tes
¶ Diameter of cold TES tank [m]
Type: float

d_tank_tes
¶ Diameter of TES tank [m]
Type: float

direct_subtotal_cost_calc
¶ Direct subtotal cost [$]
Type: float

disp_iter_ann
¶ Annual sum of dispatch solver iterations
Type: float

disp_obj_relax
¶ Dispatch objective function  relaxed max
Type: sequence

disp_objective
¶ Dispatch objective function value
Type: sequence

disp_objective_ann
¶ Annual sum of dispatch objective function value [$]
Type: float

disp_pceff_expected
¶ Dispatch expected power cycle efficiency adj.
Type: sequence

disp_presolve_nconstr
¶ Dispatch number of constraints in problem
Type: sequence

disp_presolve_nconstr_ann
¶ Annual sum of dispatch problem constraint count
Type: float

disp_presolve_nvar
¶ Dispatch number of variables in problem
Type: sequence

disp_presolve_nvar_ann
¶ Annual sum of dispatch problem variable count
Type: float

disp_qpbsu_expected
¶ Dispatch expected power cycle startup energy [MWht]
Type: sequence

disp_qsfprod_expected
¶ Dispatch expected heat pump heat generation [MWt]
Type: sequence

disp_qsfsu_expected
¶ Dispatch expected heat pump startup enegy [MWt]
Type: sequence

disp_rel_mip_gap
¶ Dispatch relative MIP gap
Type: sequence

disp_rev_expected
¶ Dispatch expected revenue factor
Type: sequence

disp_solve_iter
¶ Dispatch iterations count
Type: sequence

disp_solve_state
¶ Dispatch solver state
Type: sequence

disp_solve_state_ann
¶ Annual sum of dispatch solve state
Type: float

disp_solve_time
¶ Dispatch solver time [sec]
Type: sequence

disp_solve_time_ann
¶ Annual sum of dispatch solver time [sec]
Type: float

disp_subopt_flag
¶ Dispatch suboptimal solution flag
Type: sequence

disp_tes_expected
¶ Dispatch expected TES charge level [MWht]
Type: sequence

disp_wpb_expected
¶ Dispatch expected power generation [MWe]
Type: sequence

e_ch_tes
¶ TES charge state [MWht]
Type: sequence

elec_purchase_price_mult
¶ Electricity purchase price multiplier
Type: sequence

epc_cost_calc
¶ EPC cost [$]
Type: float

eta_pc_net_des
¶ Cycle net efficiency []
Type: float

eta_pc_thermo
¶ PC thermodynamic efficiency
Type: sequence

flip_target_percent
¶ Aftertax IRR target [%]
Type: float

gen
¶ Total electric power to grid with available derate [kWe]
Type: sequence

heater_cost_calc
¶ Heater cost [$]
Type: float

installed_per_cap_cost_calc
¶ Installed cost per capacity [$/kWe]
Type: float

land_cost_calc
¶ Land cost [$]
Type: float

m_dot_balance
¶ Relative mass flow balance error
Type: sequence

m_dot_hp_CT_htf
¶ Heat pump cold tes HTF mass flow rate [kg/s]
Type: sequence

m_dot_hp_CT_htf_des
¶ Heat pump CT HTF mass flow rate [kg/s]
Type: float

m_dot_hp_HT_htf
¶ Heat pump hot tes HTF mass flow rate [kg/s]
Type: sequence

m_dot_hp_HT_htf_des
¶ Heat pump HT HTF mass flow rate [kg/s]
Type: float

m_dot_pc_CT_htf
¶ PC cold tes HTF mass flow rate [kg/s]
Type: sequence

m_dot_pc_CT_htf_des
¶ Cycle CT HTF mass flow rate [kg/s]
Type: float

m_dot_pc_HT_htf
¶ PC hot tes HTF mass flow rate [kg/s]
Type: sequence

m_dot_pc_HT_htf_des
¶ Cycle HT HTF mass flow rate [kg/s]
Type: float

mass_CT_tes_cold
¶ TES cold tank mass (end) [kg]
Type: sequence

mass_CT_tes_hot
¶ TES hot tank mass (end) [kg]
Type: sequence

mass_tes_cold
¶ TES cold tank mass (end) [kg]
Type: sequence

mass_tes_hot
¶ TES hot tank mass (end) [kg]
Type: sequence

n_op_modes
¶ Operating modes in reporting timestep
Type: sequence

nameplate
¶ Nameplate capacity (discharge) [MWe]
Type: float

op_mode_1
¶ 1st operating mode
Type: sequence

op_mode_2
¶ 2nd operating mode, if applicable
Type: sequence

op_mode_3
¶ 3rd operating mode, if applicable
Type: sequence

ppa_soln_mode
¶ PPA solution mode [0/1]
Type: float

q_balance
¶ Relative energy balance error
Type: sequence

q_dot_CT_tes_heater
¶ TES freeze protection power [MWe]
Type: sequence

q_dot_CT_tes_losses
¶ TES thermal losses [MWt]
Type: sequence

q_dot_ch_tes
¶ TES charge thermal power [MWt]
Type: sequence

q_dot_dc_tes
¶ TES discharge thermal power [MWt]
Type: sequence

q_dot_hp_cold_in_des
¶ Heat pump heat input [MWt]
Type: float

q_dot_hp_from_CT_htf
¶ Heat pump thermal power from cold tes HTF [MWt]
Type: sequence

q_dot_hp_hot_out_des
¶ Heat pump heat output [MWt]
Type: float

q_dot_hp_startup
¶ Heat pump startup power [MWt]
Type: sequence

q_dot_hp_to_HT_htf
¶ Heat pump thermal power to hot tes HTF [MWt]
Type: sequence

q_dot_loss_CT_tes_des
¶ Cold TES thermal loss at design [MWt]
Type: float

q_dot_loss_tes_des
¶ TES thermal loss at design [MWt]
Type: float

q_dot_pc_cold_out_thermo_des
¶ Cycle total heat rejection [MWt]
Type: float

q_dot_pc_cold_to_CTES_des
¶ Cycle heat to cold TES [MWt]
Type: float

q_dot_pc_cold_to_surroundings_des
¶ Cycle heat to surroundings [MWt]
Type: float

q_dot_pc_from_HT_htf
¶ PC thermal power from hot tes HTF [MWt]
Type: sequence

q_dot_pc_hot_in_des
¶ Cycle heat input [MWt]
Type: float

q_dot_pc_rejected
¶ PC thermal power rejected to surroundings [MWt]
Type: sequence

q_dot_pc_startup
¶ PC startup power [MWt]
Type: sequence

q_dot_pc_thermo_out
¶ PC total heat leaving cycle [MWt]
Type: sequence

q_dot_pc_to_CT_htf
¶ PC thermal power to cold tes HTF [MWt]
Type: sequence

q_dot_tes_heater
¶ TES freeze protection power [MWe]
Type: sequence

q_dot_tes_losses
¶ TES thermal losses [MWt]
Type: sequence

q_pc_target
¶ Controller target pc heat input [MWt]
Type: sequence

rte_net
¶ Net roundtrip efficiency considering all parasitics [MWe]
Type: float

rte_thermo
¶ Roundtrip efficiency of working fluid cycles [MWe]
Type: float

sales_tax_cost_calc
¶ Sales tax cost [$]
Type: float

system_capacity
¶ System capacity (discharge) [kWe]
Type: float

tdry
¶ Resource dry Bulb temperature [C]
Type: sequence

tes_cost_calc
¶ TES cost [$]
Type: float

time_hr
¶ Time at end of timestep [hr]
Type: sequence

total_direct_cost_calc
¶ Total direct cost [$]
Type: float

total_indirect_cost_calc
¶ Total indirect cost [$]
Type: float

total_installed_cost
¶ Total installed cost [$]
Type: float

tou_period
¶ Time of use period
Type: sequence

tshours_heater
¶ Hours of TES relative to heater output [hr]
Type: float

twet
¶ Resource wet Bulb temperature [C]
Type: sequence
