CspSubcomponent

CspSubcomponent

PySAM.CspSubcomponent.default(config) CspSubcomponent

Load defaults for the configuration config. Available configurations are:

  • None

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.CspSubcomponent.from_existing(data, optional config) CspSubcomponent

Share data with an existing PySAM class. If optional config is a valid configuration name, load the module’s defaults for that configuration.

PySAM.CspSubcomponent.new() CspSubcomponent
PySAM.CspSubcomponent.wrap(ssc_data_t) CspSubcomponent

Load data from a PySSC object.

Warning

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

CspSubcomponent is a wrapper for the SSC compute module cmod_csp_subcomponent.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.

  • None

Functions

class PySAM.CspSubcomponent.CspSubcomponent

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

execute(int verbosity) None

Execute simulation with verbosity level 0 (default) or 1

export() dict

Export attributes into nested dictionary

get_data_ptr() Pointer

Get ssc_data_t pointer

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

unassign(name) None

Unassign a value in any of the variable groups.

value(name, optional value) None | float | dict | sequence | str

Get or set by name a value in any of the variable groups.

System Group

class PySAM.CspSubcomponent.CspSubcomponent.System
assign(dict) None

Assign attributes from dictionary, overwriting but not removing values.

System_vals = { var: val, ...}

export() dict

Export attributes into dictionary.

replace(dict) None

Replace attributes from dictionary, unassigning values not present in input dict.

System_vals = { var: val, ...}

solar_mult

Actual solar multiple of system [-]

Required: True

Type:

float

t_step

Timestep duration [s]

Required: True

Type:

float

Weather Group

class PySAM.CspSubcomponent.CspSubcomponent.Weather
assign(dict) None

Assign attributes from dictionary, overwriting but not removing values.

Weather_vals = { var: val, ...}

export() dict

Export attributes into dictionary.

replace(dict) None

Replace attributes from dictionary, unassigning values not present in input dict.

Weather_vals = { var: val, ...}

T_amb

Ambient temperature [C]

Required: True

Type:

sequence

TES Group

class PySAM.CspSubcomponent.CspSubcomponent.TES
assign(dict) None

Assign attributes from dictionary, overwriting but not removing values.

TES_vals = { var: val, ...}

export() dict

Export attributes into dictionary.

replace(dict) None

Replace attributes from dictionary, unassigning values not present in input dict.

TES_vals = { var: val, ...}

T_sink_out

Temperature from heat sink or power block [C]

Required: True

Type:

sequence

T_src_out

Temperature from heat source [C]

Required: True

Type:

sequence

T_tank_cold_ini

Temperature of fluid in cold tank at beginning of step [C]

Type:

float

T_tank_hot_ini

Temperature of fluid in hot tank at beginning of step [C]

Type:

float

cold_tank_Thtr

Minimum allowable cold tank HTF temp [C]

Required: Required if tes_type=1|tes_type=3

Type:

float

cold_tank_max_heat

Rated heater capacity for cold tank heating [MWe]

Required: Required if tes_type=1|tes_type=3

Type:

float

d_tank_in

Tank diameter input [m]

Required: Required if is_h_tank_fixed=0|is_h_tank_fixed=2

Type:

float

dt_hot

Hot side HX approach temp [C]

Required: Required if tes_type=1

Type:

float

h_tank_in

Total height of tank input (height of HTF when tank is full [m]

Required: Required if is_h_tank_fixed=1

Type:

float

h_tank_min

Minimum allowable HTF height in storage tank [m]

Required: Required if tes_type=1|tes_type=3

Type:

float

hot_tank_Thtr

Minimum allowable hot tank HTF temp [C]

Required: Required if tes_type=1|tes_type=3

Type:

float

hot_tank_bypassed

Is mass flow from source going straight to cold tank? [-]

Required: True

Type:

sequence

hot_tank_max_heat

Rated heater capacity for hot tank heating [MWe]

Required: Required if tes_type=1|tes_type=3

Type:

float

init_hot_htf_percent

Initial fraction of avail. vol that is hot [%]

Required: True

Type:

float

is_h_tank_fixed

[1] Use fixed height (calculate diameter) [0] Use fixed diameter [2] Use fixed d and h (for packed bed) [-]

Required: False. Automatically set to 1 if not assigned explicitly or loaded from defaults.

Type:

float

mdot_sink

Mass flow to heat sink or power block [kg/s]

Required: True

Type:

sequence

mdot_src

Mass flow from heat source [kg/s]

Required: True

Type:

sequence

store_fl_props

User defined storage fluid property data [-]

Required: Required if tes_type=1

Type:

sequence[sequence]

store_fluid

Material number for storage fluid [-]

Required: Required if tes_type=1

Type:

float

tank_pairs

Number of equivalent tank pairs [-]

Constraints: INTEGER

Required: True

Type:

float

tes_cyl_piston_loss_poly

Polynomial coefficients describing piston heat loss function (f(kg/s)=%)

Required: Required if tes_type=3

Type:

sequence

tes_cyl_tank_cp

Tank wall cp (used for Piston Cylinder) [kJ/kg-K]

Required: Required if tes_type=3

Type:

float

tes_cyl_tank_dens

Tank wall thickness (used for Piston Cylinder) [kg/m3]

Required: Required if tes_type=3

Type:

float

tes_cyl_tank_insul_percent

Percent additional wall mass due to insulation (used for Piston Cylinder) [%]

Required: False. Automatically set to 0 if not assigned explicitly or loaded from defaults.

Type:

float

tes_cyl_tank_thick

Tank wall thickness (used for Piston Cylinder) [m]

Required: Required if tes_type=3

Type:

float

tes_n_tsteps

Number of subtimesteps (for NT and packed bed)

Required: tes_type>1

Type:

float

tes_pb_T_charge_min

Min charge temp [C]

Required: Required if tes_type=2

Type:

float

tes_pb_T_cold_delta

Max allowable increase in cold discharge temp [C]

Required: Required if tes_type=2

Type:

float

tes_pb_T_grad_ini

TES Temperature gradient at beginning of timestep [C]

Required: False. Automatically set to [-274] if not assigned explicitly or loaded from defaults.

Type:

sequence

tes_pb_T_hot_delta

Max allowable decrease in hot discharge temp [C]

Required: Required if tes_type=2

Type:

float

tes_pb_cp_solid

TES particle specific heat [kJ/kg K]

Required: Required if tes_type=2

Type:

float

tes_pb_dens_solid

TES packed bed media density [kg/m3]

Required: Required if tes_type=2

Type:

float

tes_pb_f_oversize

Packed bed oversize factor

Required: Required if tes_type=2

Type:

float

tes_pb_k_eff

TES packed bed effective conductivity [W/m K]

Required: Required if tes_type=2

Type:

float

tes_pb_n_xsteps

Number of spatial segments

Required: Required if tes_type=2

Type:

float

tes_pb_void_frac

TES packed bed void fraction

Required: Required if tes_type=2

Type:

float

tes_type

Standard two tank (1), Packed Bed (2), Piston Cylinder (3) [-]

Required: False. Automatically set to 1 if not assigned explicitly or loaded from defaults.

Type:

float

tshours

Equivalent full-load thermal storage hours [hr]

Required: True

Type:

float

u_tank

Loss coefficient from the tank [W/m2-K]

Required: Required if tes_type=1|tes_type=3

Type:

float

Powerblock Group

class PySAM.CspSubcomponent.CspSubcomponent.Powerblock
assign(dict) None

Assign attributes from dictionary, overwriting but not removing values.

Powerblock_vals = { var: val, ...}

export() dict

Export attributes into dictionary.

replace(dict) None

Replace attributes from dictionary, unassigning values not present in input dict.

Powerblock_vals = { var: val, ...}

P_ref

Rated plant capacity [MWe]

Required: True

Type:

float

eta_ref

Power cycle efficiency at design [none]

Required: True

Type:

float

pb_pump_coef

Pumping power to move 1kg of HTF through PB loop [kW/kg]

Required: True

Type:

float

SolarField Group

class PySAM.CspSubcomponent.CspSubcomponent.SolarField
assign(dict) None

Assign attributes from dictionary, overwriting but not removing values.

SolarField_vals = { var: val, ...}

export() dict

Export attributes into dictionary.

replace(dict) None

Replace attributes from dictionary, unassigning values not present in input dict.

SolarField_vals = { var: val, ...}

Fluid

Field HTF fluid ID number [-]

Required: True

Type:

float

HDR_rough

Header pipe roughness [m]

Required: True

Type:

float

T_loop_in_des

Design loop inlet temperature [C]

Required: True

Type:

float

T_loop_out

Target loop outlet temperature [C]

Required: True

Type:

float

calc_design_pipe_vals

Calculate temps and pressures at design conditions for runners and headers [none]

Required: True

Type:

float

eta_pump

HTF pump efficiency [none]

Required: True

Type:

float

field_fl_props

User defined field fluid property data [-]

Required: True

Type:

sequence[sequence]

Controller Group

class PySAM.CspSubcomponent.CspSubcomponent.Controller
assign(dict) None

Assign attributes from dictionary, overwriting but not removing values.

Controller_vals = { var: val, ...}

export() dict

Export attributes into dictionary.

replace(dict) None

Replace attributes from dictionary, unassigning values not present in input dict.

Controller_vals = { var: val, ...}

DP_SGS

Pressure drop within the steam generator [bar]

Required: True

Type:

float

T_tank_hot_inlet_min

Minimum hot tank htf inlet temperature [C]

Required: True

Type:

float

V_tes_des

Design-point velocity to size the TES pipe diameters [m/s]

Required: True

Type:

float

custom_tes_p_loss

TES pipe losses are based on custom lengths and coeffs [-]

Required: True

Type:

float

custom_tes_pipe_sizes

Use custom TES pipe diams, wallthks, and lengths [-]

Required: True

Type:

float

has_hot_tank_bypass

Bypass valve connects field outlet to cold tank [-]

Required: True

Type:

float

k_tes_loss_coeffs

Minor loss coeffs for the coll, gen, and bypass loops [-]

Required: True

Type:

sequence[sequence]

tanks_in_parallel

Tanks are in parallel, not in series, with solar field [-]

Required: Required if tes_type=1

Type:

float

tes_diams

Custom TES diameters [m]

Required: True

Type:

sequence[sequence]

tes_lengths

Custom TES lengths [m]

Type:

sequence[sequence]

tes_pump_coef

Pumping power to move 1kg of HTF through tes loop [kW/(kg/s)]

Required: True

Type:

float

tes_wallthicks

Custom TES wall thicknesses [m]

Required: True

Type:

sequence[sequence]

Outputs Group

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

T_grad_final

TES Temperature gradient at end of timestep [C]

Type:

sequence[sequence]

T_sink_in

Temperature to heat sink or power block [C]

Type:

sequence

T_src_in

Temperature to heat source [C]

Type:

sequence

T_tank_cold

Temperature of cold tank (end of timestep) [C]

Type:

sequence

T_tank_hot

Temperature of hot tank (end of timestep) [C]

Type:

sequence

hot_tank_mass_perc

TES hot tank mass percent of total (end) [kg]

Type:

sequence

hot_tank_vol_frac

Hot tank volume fraction of total

Type:

sequence

piston_frac

Piston Fraction (distance from left cold side)

Type:

sequence

piston_loc

Piston Location (distance from left cold side) [m]

Type:

sequence

q_ch_from_htf

Thermal energy from the HTF to storage [MJt]

Type:

sequence

q_dc_to_htf

Thermal energy to HTF from storage [MJt]

Type:

sequence

q_dot_ch_from_htf

Thermal power from the HTF to storage [MWt]

Type:

sequence

q_dot_dc_to_htf

Thermal power to HTF from storage [MWt]

Type:

sequence

tes_E_cold

TES cold side internal energy [MJ]

Type:

sequence

tes_E_hot

TES hot side internal energy [MJ]

Type:

sequence

tes_V_cold

TES cold fluid volume [kg]

Type:

sequence

tes_V_hot

TES hot fluid volume [kg]

Type:

sequence

tes_diameter

TES Diameter [m]

Type:

float

tes_error

TES energy balance error [MW]

Type:

sequence

tes_error_corrected

TES energy balance error, accounting for wall and temperature assumption error [MWt]

Type:

sequence

tes_error_percent

TES energy balance error percent [%]

Type:

sequence

tes_exp_length

TES expansion tank effective length [m]

Type:

sequence

tes_exp_wall_mass

TES expansion tank effective wall mass [kg]

Type:

sequence

tes_height

TES Height [m]

Type:

float

tes_leak_error

TES energy balance error due to leakage assumption [MWt]

Type:

sequence

tes_mass_cold

TES cold fluid mass [kg]

Type:

sequence

tes_mass_hot

TES hot fluid mass [kg]

Type:

sequence

tes_radius

TES Radius [m]

Type:

float

tes_wall_error

TES energy balance error due to wall temperature assumption [MWt]

Type:

sequence