TcsdirectSteam

Wrapper for SAM Simulation Core model: cmod_tcsdirect_steam.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:

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.

TcsdirectSteam model description

CSP direct steam power tower model for power generation

PySAM.TcsdirectSteam.default(config) → TcsdirectSteam

Use default attributes None

PySAM.TcsdirectSteam.from_existing(data, optional config) → TcsdirectSteam

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

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

Use existing PySSC data

Warning

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

Functions

class PySAM.TcsdirectSteam.TcsdirectSteam

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 = { 'Weather': { var: val, ...}, ...}

execute(int verbosity) → None

Execute simulation with verbosity level 0 (default) or 1

export() → dict

Export attributes into nested dictionary

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.

Weather Group

class PySAM.TcsdirectSteam.TcsdirectSteam.Weather
assign() → None

Assign attributes from dictionary

Weather_vals = { var: val, ...}

export() → dict

Export attributes into dictionary

solar_resource_file

local weather file path

Constraints: LOCAL_FILE

Required: True

Type:str

DirectSteamTower Group

class PySAM.TcsdirectSteam.TcsdirectSteam.DirectSteamTower
assign() → None

Assign attributes from dictionary

DirectSteamTower_vals = { var: val, ...}

export() → dict

Export attributes into dictionary

system_capacity

Nameplate capacity [kW]

Required: True

Type:float

TouTranslator Group

class PySAM.TcsdirectSteam.TcsdirectSteam.TouTranslator
assign() → None

Assign attributes from dictionary

TouTranslator_vals = { var: val, ...}

export() → dict

Export attributes into dictionary

weekday_schedule

12x24 Time of Use Values for week days

Required: True

Type:sequence[sequence]
weekend_schedule

12x24 Time of Use Values for week end days

Required: True

Type:sequence[sequence]

Heliostat Group

class PySAM.TcsdirectSteam.TcsdirectSteam.Heliostat
assign() → None

Assign attributes from dictionary

Heliostat_vals = { var: val, ...}

export() → dict

Export attributes into dictionary

N_hel

Number of heliostats

Required: False

Type:float
bop_spec_cost

BOS specific cost [$/kWe]

Required: True

Type:float
c_atm_0

Attenuation coefficient 0

Required: If not provided, assumed to be 0.006789

Type:float
c_atm_1

Attenuation coefficient 1

Required: If not provided, assumed to be 0.1046

Type:float
c_atm_2

Attenuation coefficient 2

Required: If not provided, assumed to be -0.0107

Type:float
c_atm_3

Attenuation coefficient 3

Required: If not provided, assumed to be 0.002845

Type:float
calc_fluxmaps

Include fluxmap calculations

Required: If not provided, assumed to be 0

Type:float
cant_type

Heliostat cant method

Required: True

Type:float
check_max_flux

Check max flux at design point

Required: If not provided, assumed to be 0

Type:float
contingency_rate

Contingency for cost overrun [%]

Required: True

Type:float
cost_sf_fixed

Solar field fixed cost [$]

Required: True

Type:float
csp_pt_cost_epc_fixed

EPC fixed [$]

Required: True

Type:float
csp_pt_cost_epc_per_acre

EPC cost per acre [$/acre]

Required: True

Type:float
csp_pt_cost_epc_per_watt

EPC cost per watt [$/W]

Required: True

Type:float
csp_pt_cost_epc_percent

EPC cost percent of direct

Required: True

Type:float
csp_pt_cost_plm_fixed

PLM fixed [$]

Required: True

Type:float
csp_pt_cost_plm_per_acre

PLM cost per acre [$/acre]

Required: True

Type:float
csp_pt_cost_plm_per_watt

PLM cost per watt [$/W]

Required: True

Type:float
csp_pt_cost_plm_percent

PLM cost percent of direct

Required: True

Type:float
csp_pt_sf_fixed_land_area

Fixed land area [acre]

Required: True

Type:float
csp_pt_sf_land_overhead_factor

Land overhead factor

Required: True

Type:float
delta_flux_hrs

Hourly frequency in flux map lookup

Required: If not provided, assumed to be 1

Type:float
dens_mirror

Ratio of reflective area to profile

Required: True

Type:float
dni_des

Design-point DNI [W/m2]

Required: True

Type:float
eta_map

Field efficiency array

Required: False

Type:sequence[sequence]
flux_maps

Flux map intensities

Required: False

Type:sequence[sequence]
flux_max

Maximum allowable flux

Required: If not provided, assumed to be 1000

Type:float
flux_positions

Flux map sun positions [deg]

Required: False

Type:sequence[sequence]
focus_type

Heliostat focus method

Required: True

Type:float
fossil_spec_cost

Fossil system specific cost [$/kWe]

Required: True

Type:float
hel_stow_deploy

Stow/deploy elevation [deg]

Required: True

Type:float
helio_active_fraction

Heliostat active frac.

Required: True

Type:float
helio_aim_points

Heliostat aim point table [m]

Required: False

Type:sequence[sequence]
helio_height

Heliostat height [m]

Required: True

Type:float
helio_optical_error

Heliostat optical error [rad]

Required: True

Type:float
helio_positions

Heliostat position table [m]

Required: True if run_type=1

Type:sequence[sequence]
helio_reflectance

Heliostat reflectance

Required: True

Type:float
helio_width

Heliostat width [m]

Required: True

Type:float
heliostat_spec_cost

Heliostat field cost [$/m2]

Required: True

Type:float
interp_beta

Interpolation beta coef.

Required: If not provided, assumed to be 1.99

Type:float
interp_nug

Interpolation nugget

Required: If not provided, assumed to be 0

Type:float
is_optimize

Do SolarPILOT optimization

Required: If not provided, assumed to be 0

Type:float
land_bound_list

Boundary table listing

Required: False

Type:sequence
land_bound_table

Land boundary table [m]

Required: False

Type:sequence[sequence]
land_bound_type

Land boundary type

Required: If not provided, assumed to be 0

Type:float
land_max

Land max boundary [-ORm]

Required: If not provided, assumed to be 7.5

Type:float
land_min

Land min boundary [-ORm]

Required: If not provided, assumed to be 0.75

Type:float
land_spec_cost

Total land area cost [$/acre]

Required: True

Type:float
n_facet_x

Number of heliostat facets - X

Required: True

Type:float
n_facet_y

Number of heliostat facets - Y

Required: True

Type:float
n_flux_days

No. days in flux map lookup

Required: If not provided, assumed to be 8

Type:float
n_flux_x

Flux map X resolution

Required: If not provided, assumed to be 12

Type:float
n_flux_y

Flux map Y resolution

Required: If not provided, assumed to be 1

Type:float
opt_algorithm

Optimization algorithm

Required: If not provided, assumed to be 0

Type:float
opt_conv_tol

Optimization convergence tol

Required: If not provided, assumed to be 0.001

Type:float
opt_flux_penalty

Optimization flux overage penalty

Required: True

Type:float
opt_init_step

Optimization initial step size

Required: If not provided, assumed to be 0.05

Type:float
opt_max_iter

Max. number iteration steps

Required: If not provided, assumed to be 200

Type:float
p_start

Heliostat startup energy [kWe-hr]

Required: True

Type:float
p_track

Heliostat tracking energy [kWe]

Required: True

Type:float
plant_spec_cost

Power cycle specific cost [$/kWe]

Required: True

Type:float
q_design

Receiver thermal design power [MW]

Required: True

Type:float
rec_absorptance

Receiver absorptance

Required: True

Type:float
rec_aspect

Receiver aspect ratio

Required: True

Type:float
rec_cost_exp

Receiver cost scaling exponent

Required: True

Type:float
rec_height

Receiver height [m]

Required: True

Type:float
rec_hl_perm2

Receiver design heatloss [kW/m2]

Required: True

Type:float
rec_ref_area

Receiver reference area for cost scale

Required: True

Type:float
rec_ref_cost

Receiver reference cost [$]

Required: True

Type:float
run_type

Run type [-]

Required: True

Type:float
sales_tax_frac

Percent of cost to which sales tax applies [%]

Required: True

Type:float
sales_tax_rate

Sales tax rate [%]

Required: True

Type:float
site_spec_cost

Site improvement cost [$/m2]

Required: True

Type:float
tes_spec_cost

Thermal energy storage cost [$/kWht]

Required: True

Type:float
total_installed_cost

Total installed cost [$]

Required: True

Type:float
tower_exp

Tower cost scaling exponent

Required: True

Type:float
tower_fixed_cost

Tower fixed cost [$]

Required: True

Type:float
v_wind_max

Max. wind velocity [m/s]

Required: True

Type:float
washing_frequency

Mirror washing frequency

Required: True

Type:float
water_usage_per_wash

Water usage per wash [L/m2_aper]

Required: True

Type:float

Receiver Group

class PySAM.TcsdirectSteam.TcsdirectSteam.Receiver
assign() → None

Assign attributes from dictionary

Receiver_vals = { var: val, ...}

export() → dict

Export attributes into dictionary

H_rec

The height of the receiver [m]

Required: True

Type:float
THT

The height of the tower (hel. pivot to rec equator) [m]

Required: True

Type:float

DsgController Group

class PySAM.TcsdirectSteam.TcsdirectSteam.DsgController
assign() → None

Assign attributes from dictionary

DsgController_vals = { var: val, ...}

export() → dict

Export attributes into dictionary

A_sf

Solar field area [m^2]

Required: True

Type:float
P_b_in_init

Initial Boiler inlet pressure [bar]

Required: True

Type:float
P_cond_init

Condenser pressure [Pa]

Required: True

Type:float
P_hp_in_des

Design HP Turbine Inlet Pressure [bar]

Required: True

Type:float
P_hp_out

HP turbine outlet pressure [bar]

Required: True

Type:float
P_hp_out_des

Design HP Turbine Outlet Pressure [bar]

Required: True

Type:float
T_ITD_des

Approach temperature for dry cooling [C]

Required: True

Type:float
T_amb_des

Design ambient temperature (power cycle) [C]

Required: True

Type:float
T_approach

Approach temperature for wet cooling [C]

Required: True

Type:float
T_fw_init

Initial Feedwater outlet temperature [C]

Required: True

Type:float
T_hp_out

HP turbine outlet temperature [C]

Required: True

Type:float
T_rh_out_des

Target reheater outlet temperature [C]

Required: True

Type:float
T_rh_target

Target reheater outlet temp. [C]

Required: True

Type:float
T_sh_out_des

Target superheater outlet temperature [C]

Required: True

Type:float
ct

Cooling Type [-]

Constraints: INTEGER

Required: True

Type:float
cycle_max_frac

Cycle maximum overdesign fraction [-]

Required: True

Type:float
dT_cw_ref

Reference condenser water dT [C]

Required: True

Type:float
d_rec

Diameter of Receiver [m]

Required: True

Type:float
d_rh

O.D. of reheater tubes [m]

Required: True

Type:float
d_sh

O.D. of superheater tubes [m]

Required: True

Type:float
d_t_boiler

O.D. of boiler tubes [m]

Required: True

Type:float
eta_rec_pump

Feedwater pump efficiency [-]

Required: True

Type:float
f_mdot_rh_init

Reheat mass flow rate fraction [-]

Required: True

Type:float
f_mdotrh_des

Design reheat mass flow rate fraction [-]

Required: True

Type:float
f_pb_cutoff

Cycle cut-off fraction [-]

Required: True

Type:float
f_pb_sb

Cycle minimum standby fraction [-]

Required: True

Type:float
f_rec_min

Minimum receiver absorbed power fraction [-]

Required: True

Type:float
ffrac

Fossil dispatch logic [-]

Required: True

Type:sequence
flowtype

Code for flow pattern through rec. [-]

Constraints: INTEGER

Required: True

Type:float
fossil_mode

1=Normal, 2=Supplemental [-]

Constraints: INTEGER

Required: True

Type:float
Type:Fossil model
h_boiler

Height of boiler [m]

Required: True

Type:float
h_rh

Height of reheater [m]

Required: True

Type:float
h_sh

Height of superheater [m]

Required: True

Type:float
h_tower

Tower Height [m]

Required: True

Type:float
hl_ffact

Heat Loss Fudge FACTor [-]

Required: True

Type:float
lhv_eff

Aux Heater lower heating value efficiency [-]

Required: True

Type:float
mat_boiler

Numerical code for tube material [-]

Constraints: INTEGER

Required: True

Type:float
mat_rh

Numerical code for reheater material [-]

Constraints: INTEGER

Required: True

Type:float
mat_sh

Numerical code for superheater material [-]

Constraints: INTEGER

Required: True

Type:float
n_panels

Number of panels [-]

Required: True

Type:float
p_cycle_design

Design Cycle Power [MW]

Required: True

Type:float
q_aux_max

Maximum heat rate of auxiliary heater [MW]

Required: True

Type:float
q_pb_design

Heat rate into powerblock at design [MW]

Required: True

Type:float
q_rec_des

Design-point thermal power [MW]

Required: True

Type:float
rec_absorptance

Absorptance of receiver tubes [-]

Required: True

Type:float
rec_emis

Emissivity of receiver tubes [-]

Required: True

Type:float
rec_qf_delay

Receiver start-up delay fraction of thermal energy of receiver running at design for 1 hour [-]

Required: True

Type:float
rec_su_delay

Receiver start-up delay time [hr]

Required: True

Type:float
t_standby_ini

Power block standby time [hr]

Required: True

Type:float
th_rh

Thickness of reheater tubes [m]

Required: True

Type:float
th_sh

Thickness of superheater tubes [m]

Required: True

Type:float
th_t_boiler

Thickness of boiler tubes [m]

Required: True

Type:float
x_b_target

Target boiler outlet quality [-]

Required: True

Type:float

Powerblock Group

class PySAM.TcsdirectSteam.TcsdirectSteam.Powerblock
assign() → None

Assign attributes from dictionary

Powerblock_vals = { var: val, ...}

export() → dict

Export attributes into dictionary

F_wc

Fraction indicating wet cooling use for hybrid system [none]

Required: True

Type:sequence
P_boil_des

Boiler operating pressure @ design [bar]

Required: True

Type:float
P_cond_min

Minimum condenser pressure [inHg]

Required: True

Type:float
P_cond_ratio

Condenser pressure ratio [none]

Required: True

Type:float
P_ref

Reference output electric power at design condition [MW]

Required: True

Type:float
P_rh_ref

Reheater operating pressure at design [bar]

Required: True

Type:float
T_ITD_des

ITD at design for dry system [C]

Required: True

Type:float
T_amb_des

Reference ambient temperature at design point [C]

Required: True

Type:float
T_cold_ref

Reference HTF outlet temperature at design [C]

Required: True

Type:float
T_hot

Hot HTF inlet temperature, from storage tank [C]

Required: True

Type:float
T_hot_ref

Reference HTF inlet temperature at design [C]

Required: True

Type:float
dT_cw_ref

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

Required: True

Type:float
eta_ref

Reference conversion efficiency at design condition [none]

Required: True

Type:float
n_pl_inc

Number of part-load increments for the heat rejection system [none]

Constraints: INTEGER

Required: True

Type:float
pb_bd_frac

Power block blowdown steam fraction [none]

Required: True

Type:float
q_sby_frac

Fraction of thermal power required for standby mode [none]

Required: True

Type:float
rh_frac_ref

Reheater flow fraction at design [none]

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

Parasitics Group

class PySAM.TcsdirectSteam.TcsdirectSteam.Parasitics
assign() → None

Assign attributes from dictionary

Parasitics_vals = { var: val, ...}

export() → dict

Export attributes into dictionary

Design_power

Power production at design conditions [MWe]

Required: True

Type:float
Piping_length

Total length of exposed piping [m]

Required: True

Type:float
Piping_loss

Thermal loss per meter of piping [Wt/m]

Required: True

Type:float
aux_par

Aux heater, boiler parasitic [MWe/MWcap]

Required: True

Type:float
aux_par_0

Aux heater, boiler parasitic - constant coefficient [none]

Required: True

Type:float
aux_par_1

Aux heater, boiler parasitic - linear coefficient [none]

Required: True

Type:float
aux_par_2

Aux heater, boiler parasitic - quadratic coefficient [none]

Required: True

Type:float
aux_par_f

Aux heater, boiler parasitic - multiplying fraction [none]

Required: True

Type:float
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 [none]

Required: True

Type:float
bop_par_1

Balance of plant parasitic power fraction - linear coeff [none]

Required: True

Type:float
bop_par_2

Balance of plant parasitic power fraction - quadratic coeff [none]

Required: True

Type:float
bop_par_f

Balance of plant parasitic power fraction - mult frac [none]

Required: True

Type:float
design_eff

Power cycle efficiency at design [none]

Required: True

Type:float
pb_fixed_par

Fixed parasitic load - runs at all times [MWe/MWcap]

Required: True

Type:float
piping_length_add

Piping constant length [m]

Required: True

Type:float
piping_length_mult

Piping length multiplier

Required: True

Type:float

AdjustmentFactors Group

class PySAM.TcsdirectSteam.TcsdirectSteam.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.TcsdirectSteam.TcsdirectSteam.Outputs
assign() → None

Assign attributes from dictionary

Outputs_vals = { var: val, ...}

export() → dict

Export attributes into dictionary

P_b_in

Receiver boiler pressure inlet [kPa]

Type:sequence
P_b_out

Receiver boiler pressure outlet [kPa]

Type:sequence
P_cond

Condenser pressure [Pa]

Type:sequence
P_cooling_tower_tot

Parasitic power condenser operation [MWe]

Type:sequence
P_cycle

Cycle electrical power output (gross) [MWe]

Type:sequence
P_drop_b

Receiver boiler pressure drop [Pa]

Type:sequence
P_fixed

Parasitic power fixed load [MWe]

Type:sequence
P_out_net

Cycle electrical power output (net) [MWe]

Type:sequence
P_parasitics

Parasitic power total consumption [MWe]

Type:sequence
P_piping_tot

Parasitic power equiv. header pipe losses [MWe]

Type:sequence
P_plant_balance_tot

Parasitic power generation-dependent load [MWe]

Type:sequence
P_rh_in

Receiver reheater pressure inlet [kPa]

Type:sequence
P_rh_out

Receiver reheater pressure outlet [kPa]

Type:sequence
P_sh_out

Receiver superheater pressure outlet [kPa]

Type:sequence
T_b_in

Receiver boiler temperature inlet [C]

Type:sequence
T_boiling

Receiver boiler temperature drum [C]

Type:sequence
T_fw

Cycle temperature feedwater outlet [C]

Type:sequence
T_max_b_surf

Receiver boiler temperature surface max [C]

Type:sequence
T_max_rh_surf

Receiver reheater temperature surface max [C]

Type:sequence
T_max_sh_surf

Receiver superheater temperature surface max [C]

Type:sequence
T_rh_in

Receiver reheater temperature inlet [C]

Type:sequence
T_rh_out

Receiver reheater temperature outlet [C]

Type:sequence
W_dot_boost

Parasitic power receiver boost pump [MWe]

Type:sequence
annual_W_cycle_gross

Electrical source - Power cycle gross output [kWh]

Type:float
annual_energy

Annual Energy [kWh]

Type:float
annual_fuel_usage

Annual fuel usage [kWh]

Type:float
annual_total_water_use

cycle + mirror washing [m3]

Type:float
Type:Total Annual Water Usage
beam

Resource Beam normal irradiance [W/m2]

Type:sequence
capacity_factor

Capacity factor [%]

Type:float
conversion_factor

Gross to Net Conversion Factor [%]

Type:float
dP_rh

Receiver reheater pressure drop [Pa]

Type:sequence
dP_sh

Receiver superheater pressure drop [Pa]

Type:sequence
defocus

Field optical focus fraction

Type:sequence
eta_b

Receiver boiler thermal efficiency

Type:sequence
eta_field

Field optical efficiency

Type:sequence
eta_rec

Receiver thermal efficiency

Type:sequence
eta_rh

Receiver reheater thermal efficiency [-]

Type:sequence
eta_sh

Receiver superheater thermal efficiency

Type:sequence
f_bays

Condenser fraction of operating bays

Type:sequence
f_mdot_rh

Receiver reheater mass flow rate fraction [-]

Type:sequence
gen

System power generated [kW]

Type:sequence
hour

Resource Hour of Day

Type:sequence
kwh_per_kw

First year kWh/kW [kWh/kW]

Type:float
m_dot_aux

Auxiliary mass flow rate [kg/hr]

Type:sequence
m_dot_makeup

Cycle mass flow rate cooling water makeup [kg/hr]

Type:sequence
m_dot_sh

Receiver superheater mass flow rate [kg/hr]

Type:sequence
month

Resource Month

Type:sequence
pparasi

Parasitic power heliostat drives [MWe]

Type:sequence
pres

Resource Pressure [mbar]

Type:sequence
q_abs_rec

Receiver power absorbed total [MWt]

Type:sequence
q_aux

Auxiliary heat rate delivered to cycle [MW]

Type:sequence
q_aux_fuel

Fuel energy rate to aux heater [MMBTU]

Type:sequence
q_b_abs

Receiver boiler power absorbed [MWt]

Type:sequence
q_b_conv

Receiver boiler power loss to convection [MWt]

Type:sequence
q_b_rad

Receiver boiler power loss to radiation [MWt]

Type:sequence
q_conv_rec

Receiver power loss to convection total [MWt]

Type:sequence
q_inc_full

Receiver power incident (excl. defocus) [MWt]

Type:sequence
q_rad_rec

Receiver power loss to radiation total [MWt]

Type:sequence
q_rh_abs

Receiver reheater power absorbed [MWt]

Type:sequence
q_rh_conv

Receiver reheater power loss to convection [MWt]

Type:sequence
q_rh_rad

Receiver reheater power loss to radiation [MWt]

Type:sequence
q_sh_abs

Receiver superheater power absorbed [MWt]

Type:sequence
q_sh_conv

Receiver superheater power loss to convection [MWt]

Type:sequence
q_sh_rad

Receiver superheater power loss to radiation [MWt]

Type:sequence
q_therm_in_rec

Receiver power to steam total [MWt]

Type:sequence
solazi

Resource Solar Azimuth [deg]

Type:sequence
solzen

Resource Solar Zenith [deg]

Type:sequence
system_heat_rate

System heat rate [MMBtu/MWh]

Type:float
tdry

Resource Dry bulb temperature [C]

Type:sequence
tou_value

Resource Time-of-use value

Type:sequence
twet

Resource Wet bulb temperature [C]

Type:sequence
v_rh_max

Receiver reheater velocity at outlet [m/s]

Type:sequence
v_sh_max

Receiver superheater velocity at outlet [m/s]

Type:sequence
wspd

Resource Wind Speed [m/s]

Type:sequence