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¶
MoltenSaltTower Group¶
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]
-