Tcsiscc

Wrapper for SAM Simulation Core model: cmod_tcsiscc.cpp

Creating an Instance

There are three methods to create a new instance of a PySAM module. Using default populates the newclass’ attributes with default values specific to a config. Each technology-financialconfiguration corresponds to a SAM GUI configuration. Using new creates an instance with empty attributes. The wrap function allows compatibility with PySSC, for details, refer to PySSC.

Tcsiscc model description

CSP molten salt power tower system with a natural gas combined cycle power plant

PySAM.Tcsiscc.default(config) → Tcsiscc

Use financial model-specific default attributes config options:

  • “ISCCSingleOwner”
PySAM.Tcsiscc.new() → Tcsiscc
PySAM.Tcsiscc.wrap(ssc_data_t) → Tcsiscc

Use existing PySSC data

Warning

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

Functions

class PySAM.Tcsiscc.Tcsiscc

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

Weather Group

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

Assign attributes from dictionary

Weather_vals = { var: val, ...}

export() → dict

Export attributes into dictionary

solar_resource_file

str: local weather file path

Constraints: LOCAL_FILE

Required: True

MoltenSaltTower Group

class PySAM.Tcsiscc.Tcsiscc.MoltenSaltTower
assign() → None

Assign attributes from dictionary

MoltenSaltTower_vals = { var: val, ...}

export() → dict

Export attributes into dictionary

system_capacity

float: Nameplate capacity [kW]

Required: True

Heliostat Group

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

Assign attributes from dictionary

Heliostat_vals = { var: val, ...}

export() → dict

Export attributes into dictionary

N_hel

float: Number of heliostats [-]

Required: False

bop_spec_cost

float: BOS specific cost [$/kWe]

Required: True

c_atm_0

float: Attenuation coefficient 0

Required: set to 0.006789 if not provided.

c_atm_1

float: Attenuation coefficient 1

Required: set to 0.1046 if not provided.

c_atm_2

float: Attenuation coefficient 2

Required: set to -0.0107 if not provided.

c_atm_3

float: Attenuation coefficient 3

Required: set to 0.002845 if not provided.

calc_fluxmaps

float: Include fluxmap calculations

Required: set to 0 if not provided.

cant_type

float: Heliostat cant method

Required: True

check_max_flux

float: Check max flux at design point

Required: set to 0 if not provided.

contingency_rate

float: Contingency for cost overrun [%]

Required: True

cost_sf_fixed

float: Solar field fixed cost [$]

Required: True

csp_pt_cost_epc_fixed

float: EPC fixed [$]

Required: True

csp_pt_cost_epc_per_acre

float: EPC cost per acre [$/acre]

Required: True

csp_pt_cost_epc_per_watt

float: EPC cost per watt [$/W]

Required: True

csp_pt_cost_epc_percent

float: EPC cost percent of direct

Required: True

csp_pt_cost_plm_fixed

float: PLM fixed [$]

Required: True

csp_pt_cost_plm_per_acre

float: PLM cost per acre [$/acre]

Required: True

csp_pt_cost_plm_per_watt

float: PLM cost per watt [$/W]

Required: True

csp_pt_cost_plm_percent

float: PLM cost percent of direct

Required: True

csp_pt_sf_fixed_land_area

float: Fixed land area [acre]

Required: True

csp_pt_sf_land_overhead_factor

float: Land overhead factor

Required: True

delta_flux_hrs

float: Hourly frequency in flux map lookup

Required: set to 1 if not provided.

dens_mirror

float: Ratio of Reflective Area to Profile [-]

Required: True

dni_des

float: Design-point DNI [W/m2]

Required: True

eta_map

sequence[sequence]: Field efficiency array [-]

Required: False

flux_maps

sequence[sequence]: Flux map intensities [-]

Required: False

flux_max

float: Maximum allowable flux

Required: set to 1000 if not provided.

flux_positions

sequence[sequence]: Flux map sun positions [deg]

Required: False

focus_type

float: Heliostat focus method

Required: True

fossil_spec_cost

float: Fossil system specific cost [$/kWe]

Required: True

h_tower

float: Tower height [m]

Required: True

hel_stow_deploy

float: Stow/deploy elevation [deg]

Required: True

helio_active_fraction

float: Heliostat active frac. [-]

Required: True

helio_aim_points

sequence[sequence]: Heliostat aim point table [m]

Required: False

helio_height

float: Heliostat height [m]

Required: True

helio_optical_error

float: Heliostat optical error [rad]

Required: True

helio_positions

sequence[sequence]: Heliostat position table [m]

Required: set to 1 if not provided.

helio_reflectance

float: Heliostat reflectance [-]

Required: True

helio_width

float: Heliostat width [m]

Required: True

heliostat_spec_cost

float: Heliostat field cost [$/m2]

Required: True

interp_beta

float: Interpolation beta coef. [-]

Required: set to 1.99 if not provided.

interp_nug

float: Interpolation nugget [-]

Required: set to 0 if not provided.

is_optimize

float: Do SolarPILOT optimization

Required: set to 0 if not provided.

land_bound_list

sequence: Boundary table listing [-]

Required: False

land_bound_table

sequence[sequence]: Land boundary table [m]

Required: False

land_bound_type

float: Land boundary type [-]

Required: set to 0 if not provided.

land_max

float: Land max boundary [-ORm]

Required: set to 7.5 if not provided.

land_min

float: Land min boundary [-ORm]

Required: set to 0.75 if not provided.

land_spec_cost

float: Total land area cost [$/acre]

Required: True

n_facet_x

float: Number of heliostat facets - X

Required: True

n_facet_y

float: Number of heliostat facets - Y

Required: True

n_flux_days

float: No. days in flux map lookup

Required: set to 8 if not provided.

n_flux_x

float: Flux map X resolution [-]

Required: set to 12 if not provided.

n_flux_y

float: Flux map Y resolution [-]

Required: set to 1 if not provided.

opt_algorithm

float: Optimization algorithm

Required: set to 0 if not provided.

opt_conv_tol

float: Optimization convergence tol

Required: set to 0.001 if not provided.

opt_flux_penalty

float: Optimization flux overage penalty

Required: True

opt_init_step

float: Optimization initial step size

Required: set to 0.05 if not provided.

opt_max_iter

float: Max. number iteration steps

Required: set to 200 if not provided.

p_start

float: Heliostat startup energy [kWe-hr]

Required: True

p_track

float: Heliostat tracking energy [kWe]

Required: True

plant_spec_cost

float: Power cycle specific cost [$/kWe]

Required: True

q_design

float: Receiver thermal design power [MW]

Required: True

rec_absorptance

float: Receiver absorptance [-]

Required: True

rec_aspect

float: Receiver aspect ratio [-]

Required: True

rec_cost_exp

float: Receiver cost scaling exponent

Required: True

rec_height

float: Receiver height [m]

Required: True

rec_hl_perm2

float: Receiver design heatloss [kW/m2]

Required: True

rec_ref_area

float: Receiver reference area for cost scale

Required: True

rec_ref_cost

float: Receiver reference cost [$]

Required: True

run_type

float: Run type [-]

Required: True

sales_tax_frac

float: Percent of cost to which sales tax applies [%]

Required: True

sales_tax_rate

float: Sales tax rate [%]

Required: True

site_spec_cost

float: Site improvement cost [$/m2]

Required: True

tes_spec_cost

float: Thermal energy storage cost [$/kWht]

Required: True

total_installed_cost

float: Total installed cost [$]

Required: True

tower_exp

float: Tower cost scaling exponent

Required: True

tower_fixed_cost

float: Tower fixed cost [$]

Required: True

v_wind_max

float: Max. wind velocity [m/s]

Required: True

Receiver Group

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

Assign attributes from dictionary

Receiver_vals = { var: val, ...}

export() → dict

Export attributes into dictionary

A_sf

float: Solar Field Area [m^2]

Required: True

D_rec

float: The overall outer diameter of the receiver [m]

Required: True

Flow_type

float: A flag indicating which flow pattern is used

Required: True

H_rec

float: The height of the receiver [m]

Required: True

N_panels

float: Number of individual panels on the receiver

Constraints: INTEGER

Required: True

Q_rec_des

float: Design-point receiver thermal power output [MWt]

Required: True

THT

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

Required: True

T_htf_cold_des

float: Cold HTF inlet temperature at design conditions [C]

Required: True

T_htf_hot_des

float: Hot HTF outlet temperature at design conditions [C]

Required: True

crossover_shift

float: No. panels shift in receiver crossover position

Required: set to 0 if not provided.

d_tube_out

float: The outer diameter of an individual receiver tube [mm]

Required: True

epsilon

float: The emissivity of the receiver surface coating

Required: True

eta_pump

float: Receiver HTF pump efficiency

Required: True

f_rec_min

float: Minimum receiver mass flow rate turn down fraction

Required: True

field_fl_props

sequence[sequence]: User defined field fluid property data [-]

Required: True

hl_ffact

float: The heat loss factor (thermal loss fudge factor)

Required: True

m_dot_htf_max

float: Maximum receiver mass flow rate [kg/hr]

Required: True

mat_tube

float: The material name of the receiver tubes

Required: True

rec_htf

float: The name of the HTF used in the receiver

Required: True

rec_qf_delay

float: Energy-based rcvr startup delay (fraction of rated thermal power)

Required: True

rec_su_delay

float: Fixed startup delay time for the receiver [hr]

Required: True

receiver_type

float: External=0, Cavity=1

Constraints: INTEGER

Required: True

th_tube

float: The wall thickness of a single receiver tube [mm]

Required: True

Powerblock Group

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

Assign attributes from dictionary

Powerblock_vals = { var: val, ...}

export() → dict

Export attributes into dictionary

elev

float: Plant elevation [m]

Required: True

ngcc_model

float: 1: NREL, 2: GE

Required: True

pinch_point_coldside

float: Cold side HX pinch point [C]

Required: True

pinch_point_hotside

float: Hot side temperature HX temperature difference [C]

Required: True

q_pb_design

float: Design point power block thermal power [MWt]

Required: True

Parasitics Group

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

Assign attributes from dictionary

Parasitics_vals = { var: val, ...}

export() → dict

Export attributes into dictionary

Q_rec_des

float: Design point solar field thermal output [MW]

Required: True

W_dot_solar_des

float: Solar contribution to cycle output at design [MWe]

Required: True

bop_par

float: Balance of plant parasitic power fraction [MWe/MWcap]

Required: True

bop_par_0

float: Balance of plant parasitic power fraction - const coeff [none]

Required: True

bop_par_1

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

Required: True

bop_par_2

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

Required: True

bop_par_f

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

Required: True

fossil_output

float: Fossil-only cycle output at design [MWe]

Required: True

pb_fixed_par

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

Required: True

pb_pump_coef

float: Required pumping power for HTF through power block [kJ/kg]

Required: True

piping_length

float: Total length of exposed piping [m]

Required: True

piping_length_const

float: Piping constant length [m]

Required: True

piping_length_mult

float: Piping length multiplier

Required: True

piping_loss

float: Thermal loss per meter of piping [Wt/m]

Required: True

AdjustmentFactors Group

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

Assign attributes from dictionary

export() → Dict

Export attributes into dictionary

constant

type: float

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.Tcsiscc.Tcsiscc.Outputs
assign() → None

Assign attributes from dictionary

Outputs_vals = { var: val, ...}

export() → dict

Export attributes into dictionary

P_fixed

sequence: Parasitic power fixed load [MWe]

P_plant_balance_tot

sequence: Parasitic power generation-dependent load [MWe]

Q_dot_max

sequence: Cycle max allowable thermal power to NGCC [MWt]

Q_solar_total

sequence: Receiver thermal power absorbed [MWt]

Q_thermal

sequence: Receiver thermal power to HTF [MWt]

T_htf_cold

sequence: Receiver HTF temperature in [C]

T_salt_hot

sequence: Receiver HTF temperature out [C]

T_st_cold

sequence: Cycle steam temp from NGCC to HX [C]

T_st_hot

sequence: Cycle steam temp from HX back to NGCC [C]

W_dot_pc_fossil

sequence: Cycle net output only considering fossil power [MWe]

W_dot_pc_hybrid

sequence: Cycle net output including solar power [MWe]

W_dot_plant_fossil

sequence: Plant net output only considering fossil power & parasitics [MWe]

W_dot_plant_hybrid

sequence: Plant net output including solar power & parasitics [MWe]

W_dot_plant_solar

sequence: Plant net output attributable to solar [MWe]

W_dot_pump

sequence: Parasitic power receiver HTF pump [MWe]

annual_energy

float: Annual Energy [kW]

annual_fuel_usage

float: Annual fuel usage [kWh]

beam

sequence: Resource Beam normal irradiance [W/m2]

capacity_factor

float: Capacity factor [%]

eta_field

sequence: Field optical efficiency

eta_fuel

sequence: Plant efficiency of fossil only operation (LHV basis) [%]

eta_solar_use

sequence: Plant solar use efficiency considering parasitics [-]

eta_therm

sequence: Receiver thermal efficiency

f_timestep

sequence: Receiver operating fraction after startup

field_eff_adj

sequence: Solar field efficiency w/ defocusing

fuel_use

sequence: Cycle natural gas used during timestep [MMBTU]

gen

sequence: System power generated [kW]

hour

sequence: Resource Hour of Day

kwh_per_kw

float: First year kWh/kW [kWh/kW]

m_dot_salt_tot

sequence: Receiver mass flow rate, derated for startup [kg/s]

m_dot_ss

sequence: Receiver mass flow rate, steady state [kg/s]

m_dot_steam

sequence: Cycle solar steam mass flow rate [kg/hr]

month

sequence: Resource Month

pparasi

sequence: Parasitic power heliostat drives [MWe]

pres

sequence: Resource Pressure [mbar]

q_conv_sum

sequence: Receiver thermal power loss to convection [MWt]

q_rad_sum

sequence: Receiver thermal power loss to radiation [MWt]

q_startup

sequence: Receiver startup power [MWt]

solar_fraction

sequence: Plant solar fraction [-]

solazi

sequence: Resource Solar Azimuth [deg]

solzen

sequence: Resource Solar Zenith [deg]

system_heat_rate

float: System heat rate [MMBtu/MWh]

tdry

sequence: Resource Dry bulb temperature [C]

twet

sequence: Resource Wet bulb temperature [C]

wspd

sequence: Resource Wind Speed [m/s]