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