TroughPhysical¶
Wrapper for SAM Simulation Core model: cmod_trough_physical.cpp
Creating an Instance¶
Refer to the Initializing a Model page for details on the different ways to create an instance of a PySAM class.
TroughPhysical model description
CSP parabolic trough model based on heat transfer and thermodynamic principles for power generation
-
PySAM.TroughPhysical.default(config) → TroughPhysical¶ Use default attributes config options:
- “PhysicalTroughAllEquityPartnershipFlip”
- “PhysicalTroughLCOECalculator”
- “PhysicalTroughLeveragedPartnershipFlip”
- “PhysicalTroughMerchantPlant”
- “PhysicalTroughNone”
- “PhysicalTroughSaleLeaseback”
- “PhysicalTroughSingleOwner”
-
PySAM.TroughPhysical.from_existing(data, optional config) → TroughPhysical¶ Share underlying data with an existing PySAM class. If config provided, default attributes are loaded otherwise.
-
PySAM.TroughPhysical.new() → TroughPhysical¶
-
PySAM.TroughPhysical.wrap(ssc_data_t) → TroughPhysical¶ Use existing PySSC data
Warning
Do not call PySSC.data_free on the ssc_data_t provided to
wrap
Functions¶
-
class
PySAM.TroughPhysical.TroughPhysical¶ 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
-
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 = { 'weather': { var: val, ...}, ...}
-
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.TroughPhysical.TroughPhysical.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, ...}
-
file_name¶ Local weather file with path [none]
Constraints: LOCAL_FILE
Required: True
Type: str
-
SolarField Group¶
-
class
PySAM.TroughPhysical.TroughPhysical.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, ...}
-
A_aperture¶ Reflective aperture area of the collector [m2]
Required: True
Type: sequence
-
AbsorberMaterial¶ Absorber material type [none]
Required: True
Type: sequence[sequence]
-
AnnulusGas¶ Annulus gas type (1=air, 26=Ar, 27=H2) [none]
Required: True
Type: sequence[sequence]
-
Ave_Focal_Length¶ Average focal length of the collector [m]
Required: True
Type: sequence
-
ColperSCA¶ Number of individual collector sections in an SCA [none]
Required: True
Type: sequence
-
D_2¶ Inner absorber tube diameter [m]
Required: True
Type: sequence[sequence]
-
D_3¶ Outer absorber tube diameter [m]
Required: True
Type: sequence[sequence]
-
D_4¶ Inner glass envelope diameter [m]
Required: True
Type: sequence[sequence]
-
D_5¶ Outer glass envelope diameter [m]
Required: True
Type: sequence[sequence]
-
D_cpnt¶ Interconnect component diameters, row=intc, col=cpnt [none]
Required: True
Type: sequence[sequence]
-
D_p¶ Diameter of the absorber flow plug (optional) [m]
Required: True
Type: sequence[sequence]
-
Design_loss¶ Receiver heat loss at design [W/m]
Required: True
Type: sequence[sequence]
-
Dirt_HCE¶ Loss due to dirt on the receiver envelope [none]
Required: True
Type: sequence[sequence]
-
Dirt_mirror¶ User-defined dirt on mirror derate [none]
Required: True
Type: sequence
-
Distance_SCA¶ Piping distance between SCA’s in the field [m]
Required: True
Type: sequence
-
EPSILON_4¶ Inner glass envelope emissivities (Pyrex) [none]
Required: True
Type: sequence[sequence]
-
EPSILON_5¶ Outer glass envelope emissivities (Pyrex) [none]
Required: True
Type: sequence[sequence]
-
Error¶ User-defined general optical error derate [none]
Required: True
Type: sequence
-
FieldConfig¶ Number of subfield headers [none]
Required: True
Type: float
-
Flow_type¶ Flow type through the absorber [none]
Required: True
Type: sequence[sequence]
-
Fluid¶ Field HTF fluid ID number [none]
Required: True
Type: float
-
GeomEffects¶ User-defined geometry effects derate [none]
Required: True
Type: sequence
-
GlazingIntactIn¶ Glazing intact (broken glass) flag {1=true, else=false} [none]
Required: True
Type: sequence[sequence]
-
HCE_FieldFrac¶ Fraction of the field occupied by this HCE type [none]
Required: True
Type: sequence[sequence]
-
HDR_rough¶ Header pipe roughness [m]
Required: True
Type: float
-
IAM_matrix¶ IAM coefficients, matrix for 4 collectors [none]
Required: True
Type: sequence[sequence]
-
I_bn_des¶ Solar irradiation at design [C]
Required: True
Type: float
-
K_cpnt¶ Interconnect component minor loss coefficients, row=intc, col=cpnt [none]
Required: True
Type: sequence[sequence]
-
L_SCA¶ Length of the SCA [m]
Required: True
Type: sequence
-
L_aperture¶ Length of a single mirror/HCE unit [m]
Required: True
Type: sequence
-
L_cpnt¶ Interconnect component lengths, row=intc, col=cpnt [none]
Required: True
Type: sequence[sequence]
-
L_power_block_piping¶ Length of piping (full mass flow) through heat sink (if applicable) [none]
Required: True
Type: float
-
L_rnr_per_xpan¶ Threshold length of straight runner pipe without an expansion loop [m]
Required: True
Type: float
-
L_xpan_hdr¶ Compined perpendicular lengths of each header expansion loop [m]
Required: True
Type: float
-
L_xpan_rnr¶ Compined perpendicular lengths of each runner expansion loop [m]
Required: True
Type: float
-
Min_rnr_xpans¶ Minimum number of expansion loops per single-diameter runner section [none]
Required: True
Type: float
-
N_hdr_per_xpan¶ Number of collector loops per expansion loop [none]
Required: True
Type: float
-
N_max_hdr_diams¶ Maximum number of diameters in each of the hot and cold headers [none]
Required: True
Type: float
-
P_a¶ Annulus gas pressure [torr]
Required: True
Type: sequence[sequence]
-
Pipe_hl_coef¶ Loss coefficient from the header, runner pipe, and non-HCE piping [m/s]
Required: True
Type: float
-
Rho_mirror_clean¶ User-defined clean mirror reflectivity [none]
Required: True
Type: sequence
-
Rough¶ Relative roughness of the internal HCE surface [-]
Required: True
Type: sequence[sequence]
-
Row_Distance¶ Spacing between rows (centerline to centerline) [m]
Required: True
Type: float
-
SCA_drives_elec¶ Tracking power, in Watts per SCA drive [W/m2-K]
Required: True
Type: float
-
Shadowing¶ Receiver bellows shadowing loss factor [none]
Required: True
Type: sequence[sequence]
-
T_fp¶ Freeze protection temperature (heat trace activation temperature) [none]
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
-
Tau_envelope¶ Envelope transmittance [none]
Required: True
Type: sequence[sequence]
-
TrackingError¶ User-defined tracking error derate [none]
Required: True
Type: sequence
-
Type_cpnt¶ Interconnect component type, row=intc, col=cpnt [none]
Required: True
Type: sequence[sequence]
-
V_hdr_cold_max¶ Maximum HTF velocity in the cold headers at design [m/s]
Required: True
Type: float
-
V_hdr_cold_min¶ Minimum HTF velocity in the cold headers at design [m/s]
Required: True
Type: float
-
V_hdr_hot_max¶ Maximum HTF velocity in the hot headers at design [m/s]
Required: True
Type: float
-
V_hdr_hot_min¶ Minimum HTF velocity in the hot headers at design [m/s]
Required: True
Type: float
-
W_aperture¶ The collector aperture width (Total structural area used for shadowing) [m]
Required: True
Type: sequence
-
accept_init¶ In acceptance testing mode - require steady-state startup [none]
Required: True
Type: float
-
accept_loc¶ In acceptance testing mode - temperature sensor location [1/2]
Info: hx/loop
Required: True
Type: float
-
accept_mode¶ Acceptance testing mode? [0/1]
Info: no/yes
Required: True
Type: float
-
alpha_abs¶ Absorber absorptance [none]
Required: True
Type: sequence[sequence]
-
alpha_env¶ Envelope absorptance [none]
Required: True
Type: sequence[sequence]
-
azimuth¶ Azimuth angle of surface/axis [none]
Required: True
Type: float
-
calc_design_pipe_vals¶ Calculate temps and pressures at design conditions for runners and headers [none]
Required: True
Type: float
-
custom_sf_pipe_sizes¶ Use custom solar field pipe diams, wallthks, and lengths [none]
Required: True
Type: float
-
epsilon_3_11¶ Absorber emittance for receiver type 1 variation 1 [none]
Required: True
Type: sequence[sequence]
-
epsilon_3_12¶ Absorber emittance for receiver type 1 variation 2 [none]
Required: True
Type: sequence[sequence]
-
epsilon_3_13¶ Absorber emittance for receiver type 1 variation 3 [none]
Required: True
Type: sequence[sequence]
-
epsilon_3_14¶ Absorber emittance for receiver type 1 variation 4 [none]
Required: True
Type: sequence[sequence]
-
epsilon_3_21¶ Absorber emittance for receiver type 2 variation 1 [none]
Required: True
Type: sequence[sequence]
-
epsilon_3_22¶ Absorber emittance for receiver type 2 variation 2 [none]
Required: True
Type: sequence[sequence]
-
epsilon_3_23¶ Absorber emittance for receiver type 2 variation 3 [none]
Required: True
Type: sequence[sequence]
-
epsilon_3_24¶ Absorber emittance for receiver type 2 variation 4 [none]
Required: True
Type: sequence[sequence]
-
epsilon_3_31¶ Absorber emittance for receiver type 3 variation 1 [none]
Required: True
Type: sequence[sequence]
-
epsilon_3_32¶ Absorber emittance for receiver type 3 variation 2 [none]
Required: True
Type: sequence[sequence]
-
epsilon_3_33¶ Absorber emittance for receiver type 3 variation 3 [none]
Required: True
Type: sequence[sequence]
-
epsilon_3_34¶ Absorber emittance for receiver type 3 variation 4 [none]
Required: True
Type: sequence[sequence]
-
epsilon_3_41¶ Absorber emittance for receiver type 4 variation 1 [none]
Required: True
Type: sequence[sequence]
-
epsilon_3_42¶ Absorber emittance for receiver type 4 variation 2 [none]
Required: True
Type: sequence[sequence]
-
epsilon_3_43¶ Absorber emittance for receiver type 4 variation 3 [none]
Required: True
Type: sequence[sequence]
-
epsilon_3_44¶ Absorber emittance for receiver type 4 variation 4 [none]
Required: True
Type: sequence[sequence]
-
eta_pump¶ HTF pump efficiency [none]
Required: True
Type: float
-
field_fl_props¶ User defined field fluid property data [-]
Required: True
Type: sequence[sequence]
-
include_fixed_power_block_runner¶ Should model consider piping through power block? [none]
Required: True
Type: float
-
m_dot_htfmax¶ Maximum loop HTF flow rate [kg/s]
Required: True
Type: float
-
m_dot_htfmin¶ Minimum loop HTF flow rate [kg/s]
Required: True
Type: float
-
mc_bal_cold¶ Heat capacity of the balance of plant on the cold side [kWht/K-MWt]
Required: True
Type: float
-
mc_bal_hot¶ Heat capacity of the balance of plant on the hot side [kWht/K-MWt]
Info: none
Required: True
Type: float
-
mc_bal_sca¶ Non-HTF heat capacity associated with each SCA - per meter basis [Wht/K-m]
Required: True
Type: float
-
nColt¶ Number of collector types [none]
Options: constant=4
Required: True
Type: float
-
nHCEVar¶ Number of HCE variants per type [none]
Required: True
Type: float
-
nHCEt¶ Number of HCE types [none]
Required: True
Type: float
-
nLoops¶ Number of loops in the field [none]
Required: True
Type: float
-
nSCA¶ Number of SCAs in a loop [none]
Required: True
Type: float
-
northsouth_field_sep¶ North/south separation between subfields. 0 = SCAs are touching [m]
Required: True
Type: float
-
offset_xpan_hdr¶ Location of first header expansion loop. 1 = after first collector loop [none]
Required: True
Type: float
-
p_start¶ Collector startup energy, per SCA [kWe-hr]
Required: True
Type: float
-
rec_qf_delay¶ Energy-based receiver startup delay (fraction of rated thermal power) [-]
Required: True
Type: float
-
rec_su_delay¶ Fixed startup delay time for the receiver [hr]
Required: True
Type: float
-
sf_hdr_diams¶ Custom header diameters [m]
Required: True
Type: sequence[sequence]
-
sf_hdr_lengths¶ Custom header lengths [m]
Required: True
Type: sequence[sequence]
-
sf_hdr_wallthicks¶ Custom header wall thicknesses [m]
Required: True
Type: sequence[sequence]
-
sf_rnr_diams¶ Custom runner diameters [m]
Required: True
Type: sequence[sequence]
-
sf_rnr_lengths¶ Custom runner lengths [m]
Required: True
Type: sequence[sequence]
-
sf_rnr_wallthicks¶ Custom runner wall thicknesses [m]
Required: True
Type: sequence[sequence]
-
theta_dep¶ Deploy angle [deg]
Required: True
Type: float
-
theta_stow¶ Stow angle [deg]
Required: True
Type: float
-
tilt¶ Tilt angle of surface/axis [none]
Required: True
Type: float
-
wind_stow_speed¶ Trough wind stow speed [m/s]
Required: If not provided, assumed to be 50
Type: float
-
Powerblock Group¶
-
class
PySAM.TroughPhysical.TroughPhysical.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, ...}
-
CT¶ Flag for using dry cooling or wet cooling system [none]
Required: True if pc_config=0
Type: float
-
F_wc¶ Fraction indicating wet cooling use for hybrid system [none]
Options: constant=[0,0,0,0,0,0,0,0,0]
Required: True if pc_config=0
Type: sequence
-
L_rnr_pb¶ Length of runner pipe in power block [m]
Required: True
Type: float
-
P_boil¶ Boiler operating pressure [bar]
Required: True if pc_config=0
Type: float
-
P_cond_min¶ Minimum condenser pressure [inHg]
Required: True if pc_config=0
Type: float
-
P_cond_ratio¶ Condenser pressure ratio [none]
Required: True if pc_config=0
Type: float
-
P_ref¶ Rated plant capacity [MWe]
Required: True
Type: float
-
T_ITD_des¶ ITD at design for dry system [C]
Required: True if pc_config=0
Type: float
-
T_amb_des¶ Reference ambient temperature at design point [C]
Required: True if pc_config=0
Type: float
-
T_approach¶ Cooling tower approach temperature [C]
Required: True if pc_config=0
Type: float
-
cycle_cutoff_frac¶ Minimum turbine operation fraction before shutdown [-]
Required: True
Type: float
-
cycle_max_frac¶ Maximum turbine over design operation fraction [-]
Required: True
Type: float
-
dT_cw_ref¶ Reference condenser cooling water inlet/outlet T diff [C]
Required: True if pc_config=0
Type: float
-
eta_ref¶ Power cycle efficiency at design [none]
Required: True
Type: float
-
n_pl_inc¶ Number of part-load increments for the heat rejection system [none]
Required: True if pc_config=0
Type: float
-
pb_bd_frac¶ Power block blowdown steam fraction [none]
Required: True if pc_config=0
Type: float
-
pb_pump_coef¶ Pumping power to move 1kg of HTF through PB loop [kW/kg]
Required: True
Type: float
-
pc_config¶ Steam Rankine (224), 1: user defined [-]
Constraints: INTEGER
Required: If not provided, assumed to be 0
Type: float Type: 0
-
q_sby_frac¶ Fraction of thermal power required for standby mode [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
-
tech_type¶ Turbine inlet pressure control flag (sliding=user, fixed=trough) [1/2/3]
Info: tower/trough/user
Required: True if pc_config=0
Type: float
-
ud_f_W_dot_cool_des¶ Percent of user-defined power cycle design gross output consumed by cooling [%]
Required: True if pc_config=1
Type: float
-
ud_ind_od¶ Off design user-defined power cycle performance as function of T_htf, m_dot_htf [ND], and T_amb
Required: True if pc_config=1
Type: sequence[sequence]
-
ud_m_dot_water_cool_des¶ Mass flow rate of water required at user-defined power cycle design point [kg/s]
Required: True if pc_config=1
Type: float
-
TES Group¶
-
class
PySAM.TroughPhysical.TroughPhysical.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, ...}
-
cold_tank_Thtr¶ Minimum allowable cold tank HTF temp [C]
Required: True
Type: float
-
cold_tank_max_heat¶ Rated heater capacity for cold tank heating [MWe]
Required: True
Type: float
-
dt_hot¶ Hot side HX approach temp [C]
Required: True
Type: float
-
h_tank¶ Total height of tank (height of HTF when tank is full [m]
Required: True
Type: float
-
h_tank_min¶ Minimum allowable HTF height in storage tank [m]
Required: True
Type: float
-
hot_tank_Thtr¶ Minimum allowable hot tank HTF temp [C]
Required: True
Type: float
-
hot_tank_max_heat¶ Rated heater capacity for hot tank heating [MWe]
Required: True
Type: float
-
init_hot_htf_percent¶ Initial fraction of avail. vol that is hot [%]
Required: True
Type: float
-
store_fl_props¶ User defined storage fluid property data [-]
Required: True
Type: sequence[sequence]
-
store_fluid¶ Material number for storage fluid [-]
Required: True
Type: float
-
tank_pairs¶ Number of equivalent tank pairs [-]
Constraints: INTEGER
Required: True
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: True
Type: float
-
Tou Group¶
-
class
PySAM.TroughPhysical.TroughPhysical.Tou¶ -
assign(dict) → None¶ Assign attributes from dictionary, overwriting but not removing values
Tou_vals = { var: val, ...}
-
export() → dict¶ Export attributes into dictionary
-
replace(dict) → None¶ Replace attributes from dictionary, unassigning values not present in input dict
Tou_vals = { var: val, ...}
-
ampl_data_dir¶ AMPL data file directory [-]
Required: If not provided, assumed to be ‘’
Type: str
-
ampl_exec_call¶ System command to run AMPL code [-]
Required: If not provided, assumed to be ‘ampl sdk_solution.run’
Type: str
-
disp_csu_cost¶ Cycle startup cost [$]
Required: True if is_dispatch=1
Type: float
-
disp_frequency¶ Frequency for dispatch optimization calculations [hour]
Required: True if is_dispatch=1
Type: float
-
disp_horizon¶ Time horizon for dispatch optimization [hour]
Required: True if is_dispatch=1
Type: float
-
disp_max_iter¶ Max. no. dispatch optimization iterations [-]
Required: True if is_dispatch=1
Type: float
-
disp_mip_gap¶ Dispatch optimization solution tolerance [-]
Required: True if is_dispatch=1
Type: float
-
disp_pen_delta_w¶ Dispatch cycle production change penalty [$/kWe-change]
Required: True if is_dispatch=1
Type: float
-
disp_reporting¶ Dispatch optimization reporting level [-]
Required: If not provided, assumed to be -1
Type: float
-
disp_rsu_cost¶ Receiver startup cost [$]
Required: True if is_dispatch=1
Type: float
-
disp_spec_bb¶ Dispatch optimization B&B heuristic [-]
Required: If not provided, assumed to be -1
Type: float
-
disp_spec_presolve¶ Dispatch optimization presolve heuristic [-]
Required: If not provided, assumed to be -1
Type: float
-
disp_spec_scaling¶ Dispatch optimization scaling heuristic [-]
Required: If not provided, assumed to be -1
Type: float
-
disp_steps_per_hour¶ Time steps per hour for dispatch optimization calculations [-]
Required: If not provided, assumed to be 1
Type: float
-
disp_time_weighting¶ Dispatch optimization future time discounting factor [-]
Required: If not provided, assumed to be 0.99
Type: float
-
disp_timeout¶ Max. dispatch optimization solve duration [s]
Required: True if is_dispatch=1
Type: float
-
dispatch_factor1¶ Dispatch payment factor 1
Required: True if ppa_multiplier_model=0&csp_financial_model<5&is_dispatch=1
Type: float
-
dispatch_factor2¶ Dispatch payment factor 2
Required: True if ppa_multiplier_model=0&csp_financial_model<5&is_dispatch=1
Type: float
-
dispatch_factor3¶ Dispatch payment factor 3
Required: True if ppa_multiplier_model=0&csp_financial_model<5&is_dispatch=1
Type: float
-
dispatch_factor4¶ Dispatch payment factor 4
Required: True if ppa_multiplier_model=0&csp_financial_model<5&is_dispatch=1
Type: float
-
dispatch_factor5¶ Dispatch payment factor 5
Required: True if ppa_multiplier_model=0&csp_financial_model<5&is_dispatch=1
Type: float
-
dispatch_factor6¶ Dispatch payment factor 6
Required: True if ppa_multiplier_model=0&csp_financial_model<5&is_dispatch=1
Type: float
-
dispatch_factor7¶ Dispatch payment factor 7
Required: True if ppa_multiplier_model=0&csp_financial_model<5&is_dispatch=1
Type: float
-
dispatch_factor8¶ Dispatch payment factor 8
Required: True if ppa_multiplier_model=0&csp_financial_model<5&is_dispatch=1
Type: float
-
dispatch_factor9¶ Dispatch payment factor 9
Required: True if ppa_multiplier_model=0&csp_financial_model<5&is_dispatch=1
Type: float
-
dispatch_factors_ts¶ Dispatch payment factor array
Required: True if ppa_multiplier_model=1&csp_financial_model<5&is_dispatch=1
Type: sequence
-
dispatch_sched_weekday¶ 12x24 PPA pricing Weekday schedule
Required: True if ppa_multiplier_model=0&csp_financial_model<5&is_dispatch=1
Type: sequence[sequence]
-
dispatch_sched_weekend¶ 12x24 PPA pricing Weekend schedule
Required: True if ppa_multiplier_model=0&csp_financial_model<5&is_dispatch=1
Type: sequence[sequence]
-
dispatch_series¶ Time series dispatch factors
Type: sequence
-
f_turb_tou_periods¶ Dispatch logic for turbine load fraction [-]
Required: True
Type: sequence
-
is_ampl_engine¶ Run dispatch optimization with external AMPL engine [-]
Required: If not provided, assumed to be 0
Type: float
-
is_dispatch¶ Allow dispatch optimization? [-]
Required: If not provided, assumed to be 0
Type: float
-
is_dispatch_series¶ Use time-series dispatch factors
Required: If not provided, assumed to be 1
Type: float
-
is_tod_pc_target_also_pc_max¶ Is the TOD target cycle heat input also the max cycle heat input?
Required: If not provided, assumed to be 0
Type: float
-
is_wlim_series¶ Use time-series net electricity generation limits
Required: If not provided, assumed to be 0
Type: float
-
is_write_ampl_dat¶ Write AMPL data files for dispatch run [-]
Required: If not provided, assumed to be 0
Type: float
-
ppa_multiplier_model¶ dispatch factors dispatch_factorX, 1: hourly multipliers dispatch_factors_ts [0/1]
Options: 0=diurnal,1=timestep
Constraints: INTEGER,MIN=0
Required: If not provided, assumed to be 0
Type: float Type: PPA multiplier model 0
-
q_rec_heattrace¶ Receiver heat trace energy consumption during startup [kWe-hr]
Required: If not provided, assumed to be 0.0
Type: float
-
q_rec_standby¶ Receiver standby energy consumption [kWt]
Required: If not provided, assumed to be 9e99
Type: float
-
timestep_load_fractions¶ Turbine load fraction for each timestep, alternative to block dispatch
Required: False
Type: sequence
-
weekday_schedule¶ 12x24 CSP operation Time-of-Use Weekday schedule [-]
Required: True
Type: sequence[sequence]
-
weekend_schedule¶ 12x24 CSP operation Time-of-Use Weekend schedule [-]
Required: True
Type: sequence[sequence]
-
wlim_series¶ Time series net electicity generation limits [kWe]
Required: True if is_wlim_series=1
Type: sequence
-
SystemControl Group¶
-
class
PySAM.TroughPhysical.TroughPhysical.SystemControl¶ -
assign(dict) → None¶ Assign attributes from dictionary, overwriting but not removing values
SystemControl_vals = { var: val, ...}
-
export() → dict¶ Export attributes into dictionary
-
replace(dict) → None¶ Replace attributes from dictionary, unassigning values not present in input dict
SystemControl_vals = { var: val, ...}
-
disp_inventory_incentive¶ Dispatch storage terminal inventory incentive multiplier
Required: If not provided, assumed to be 0.0
Type: float
-
FinancialModel Group¶
-
class
PySAM.TroughPhysical.TroughPhysical.FinancialModel¶ -
assign(dict) → None¶ Assign attributes from dictionary, overwriting but not removing values
FinancialModel_vals = { var: val, ...}
-
export() → dict¶ Export attributes into dictionary
-
replace(dict) → None¶ Replace attributes from dictionary, unassigning values not present in input dict
FinancialModel_vals = { var: val, ...}
-
csp_financial_model¶ [1-8]
Constraints: INTEGER,MIN=0
Required: If not provided, assumed to be 1
Type: float
-
FinancialSolutionMode Group¶
-
class
PySAM.TroughPhysical.TroughPhysical.FinancialSolutionMode¶ -
assign(dict) → None¶ Assign attributes from dictionary, overwriting but not removing values
FinancialSolutionMode_vals = { var: val, ...}
-
export() → dict¶ Export attributes into dictionary
-
replace(dict) → None¶ Replace attributes from dictionary, unassigning values not present in input dict
FinancialSolutionMode_vals = { var: val, ...}
-
ppa_soln_mode¶ PPA solution mode (0=Specify IRR target, 1=Specify PPA price)
Required: True if ppa_multiplier_model=0&csp_financial_model<5&is_dispatch=1
Type: float
-
ElectricityRates Group¶
-
class
PySAM.TroughPhysical.TroughPhysical.ElectricityRates¶ -
assign(dict) → None¶ Assign attributes from dictionary, overwriting but not removing values
ElectricityRates_vals = { var: val, ...}
-
export() → dict¶ Export attributes into dictionary
-
replace(dict) → None¶ Replace attributes from dictionary, unassigning values not present in input dict
ElectricityRates_vals = { var: val, ...}
-
en_electricity_rates¶ Enable electricity rates for grid purchase [0/1]
Required: If not provided, assumed to be 0
Type: float
-
Revenue Group¶
-
class
PySAM.TroughPhysical.TroughPhysical.Revenue¶ -
assign(dict) → None¶ Assign attributes from dictionary, overwriting but not removing values
Revenue_vals = { var: val, ...}
-
export() → dict¶ Export attributes into dictionary
-
replace(dict) → None¶ Replace attributes from dictionary, unassigning values not present in input dict
Revenue_vals = { var: val, ...}
-
mp_energy_market_revenue¶ Energy market revenue input
Info: Lifetime x 2[Cleared Capacity(MW),Price($/MWh)]
Required: True if csp_financial_model=6&is_dispatch=1
Type: sequence[sequence]
-
System Group¶
-
class
PySAM.TroughPhysical.TroughPhysical.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, ...}
-
aux_array¶ Auxiliary heater, mult frac and const, linear and quad coeff
Required: True
Type: sequence
-
bop_array¶ Balance of plant parasitic power fraction, mult frac and const, linear and quad coeff
Required: True
Type: sequence
-
gross_net_conversion_factor¶ Estimated gross to net conversion factor
Required: True
Type: float
-
pb_fixed_par¶ Fraction of rated gross power constantly consumed [MWe/MWcap]
Required: True
Type: float
-
washing_frequency¶ Mirror washing frequency [-/year]
Required: True
Type: float
-
water_usage_per_wash¶ Water usage per wash [L/m2_aper]
Required: True
Type: float
-
Controller Group¶
-
class
PySAM.TroughPhysical.TroughPhysical.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
-
disp_wlim_maxspec¶ disp_wlim_maxspec [-]
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]
-
non_solar_field_land_area_multiplier¶ non_solar_field_land_area_multiplier [-]
Required: True
Type: float
-
specified_solar_multiple¶ specified_solar_multiple [-]
Required: True
Type: float
-
specified_total_aperture¶ specified_total_aperture [-]
Required: True
Type: float
-
tanks_in_parallel¶ Tanks are in parallel, not in series, with solar field [-]
Required: True
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]
-
trough_loop_control¶ trough_loop_control [-]
Required: True
Type: sequence
-
use_solar_mult_or_aperture_area¶ Use solar multiple or total field aperture area [-]
Required: If not provided, assumed to be 0
Type: float
-
AdjustmentFactors Group¶
-
class
PySAM.TroughPhysical.TroughPhysical.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.TroughPhysical.TroughPhysical.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, ...}
-
CosTh_ave¶ Field collector cosine efficiency
Type: sequence
-
EndLoss_ave¶ Field collector optical end loss
Type: sequence
-
EqOpteff¶ Field optical efficiency before defocus
Type: sequence
-
IAM_ave¶ Field collector incidence angle modifier
Type: sequence
-
P_cooling_tower_tot¶ Parasitic power condenser operation [MWe]
Type: sequence
-
P_cycle¶ gross [MWe]
Type: sequence Type: PC electrical power output
-
P_fixed¶ Parasitic power fixed load [MWe]
Type: sequence
-
P_out_net¶ Total electric power to grid [MWe]
Type: sequence
-
P_plant_balance_tot¶ Parasitic power generation-dependent load [MWe]
Type: sequence
-
RowShadow_ave¶ Field collector row shadowing loss
Type: sequence
-
SCAs_def¶ Field fraction of focused SCAs
Type: sequence
-
T_field_cold_in¶ Field timestep-averaged inlet temperature [C]
Type: sequence
-
T_field_hot_out¶ Field timestep-averaged outlet temperature [C]
Type: sequence
-
T_pc_in¶ PC HTF inlet temperature [C]
Type: sequence
-
T_pc_out¶ PC HTF outlet temperature [C]
Type: sequence
-
T_rec_cold_in¶ Loop timestep-averaged inlet temperature [C]
Type: sequence
-
T_rec_hot_out¶ Loop timestep-averaged outlet temperature [C]
Type: sequence
-
T_tes_cold¶ TES cold temperature [C]
Type: sequence
-
T_tes_hot¶ TES hot temperature [C]
Type: sequence
-
Theta_ave¶ Field collector solar incidence angle [deg]
Type: sequence
-
W_dot_field_pump¶ Field htf pumping power [MWe]
Type: sequence
-
W_dot_sca_track¶ Field collector tracking power [MWe]
Type: sequence
-
annual_W_cycle_gross¶ Electrical source - Power cycle gross output [kWhe]
Type: float
-
annual_energy¶ Annual Net Electrical Energy Production w/ avail derate [kWe-hr]
Type: float
-
annual_field_freeze_protection¶ Annual thermal power for field freeze protection [kWt-hr]
Type: float
-
annual_tes_freeze_protection¶ Annual thermal power for TES freeze protection [kWt-hr]
Type: float
-
annual_thermal_consumption¶ Annual thermal freeze protection required [kWt-hr]
Type: float
-
annual_total_water_use¶ Total Annual Water Usage [m^3]
Type: float
-
beam¶ Resource Beam normal irradiance [W/m2]
Type: sequence
-
capacity_factor¶ Capacity factor [%]
Type: float
-
conversion_factor¶ Gross to Net Conversion Factor [%]
Type: float
-
defocus¶ Field optical focus fraction
Type: sequence
-
deltaP_field¶ Field pressure drop [bar]
Type: sequence
-
disp_obj_relax¶ Dispatch objective function - relaxed max
Type: sequence
-
disp_objective¶ Dispatch objective function value
Type: sequence
-
disp_pceff_expected¶ Dispatch expected power cycle efficiency adj.
Type: sequence
-
disp_presolve_nconstr¶ Dispatch number of constraints in problem
Type: sequence
-
disp_presolve_nvar¶ Dispatch number of variables in problem
Type: sequence
-
disp_qpbsu_expected¶ Dispatch expected power cycle startup energy [MWht]
Type: sequence
-
disp_qsf_expected¶ Dispatch expected solar field available energy [MWt]
Type: sequence
-
disp_qsfprod_expected¶ Dispatch expected solar field generation [MWt]
Type: sequence
-
disp_qsfsu_expected¶ Dispatch expected solar field startup enegy [MWt]
Type: sequence
-
disp_rel_mip_gap¶ Dispatch relative MIP gap
Type: sequence
-
disp_rev_expected¶ Dispatch expected revenue factor
Type: sequence
-
disp_solve_iter¶ Dispatch iterations count
Type: sequence
-
disp_solve_state¶ Dispatch solver state
Type: sequence
-
disp_solve_time¶ Dispatch solver time [sec]
Type: sequence
-
disp_subopt_flag¶ Dispatch suboptimal solution flag
Type: sequence
-
disp_tes_expected¶ Dispatch expected TES charge level [MWht]
Type: sequence
-
disp_thermeff_expected¶ Dispatch expected SF thermal efficiency adj.
Type: sequence
-
disp_wpb_expected¶ Dispatch expected power generation [MWe]
Type: sequence
-
dni_costh¶ Field collector DNI-cosine product [W/m2]
Type: sequence
-
e_ch_tes¶ TES charge state [MWht]
Type: sequence
-
e_dot_field_int_energy¶ Field change in material/htf internal energy [MWt]
Type: sequence
-
eta¶ gross
Type: sequence Type: PC efficiency
-
gen¶ Total electric power to grid w/ avail. derate [kWe]
Type: sequence
-
hour_day¶ Resource Hour of Day
Type: sequence
-
htf_pump_power¶ Parasitic power TES and Cycle HTF pump [MWe]
Type: sequence
-
is_pc_sb_allowed¶ is power cycle standby allowed
Type: sequence
-
is_pc_su_allowed¶ is power cycle startup allowed
Type: sequence
-
is_rec_su_allowed¶ is receiver startup allowed
Type: sequence
-
kwh_per_kw¶ First year kWh/kW [kWh/kW]
Type: float
-
m_dot_balance¶ Relative mass flow balance error
Type: sequence
-
m_dot_cold_tank_to_hot_tank¶ cold tank to hot tank [kg/s]
Type: sequence Type: Mass flow
-
m_dot_cr_to_tes_hot¶ field to hot TES [kg/s]
Type: sequence Type: Mass flow
-
m_dot_cycle_to_field¶ cycle to field [kg/s]
Type: sequence Type: Mass flow
-
m_dot_field_delivered¶ Field total mass flow delivered [kg/s]
Type: sequence
-
m_dot_field_recirc¶ Field total mass flow recirculated [kg/s]
Type: sequence
-
m_dot_field_to_cycle¶ field to cycle [kg/s]
Type: sequence Type: Mass flow
-
m_dot_loop¶ Receiver mass flow rate [kg/s]
Type: sequence
-
m_dot_pc¶ PC HTF mass flow rate [kg/s]
Type: sequence
-
m_dot_pc_to_tes_cold¶ cycle to cold TES [kg/s]
Type: sequence Type: Mass flow
-
m_dot_tes_cold_out¶ TES cold out [kg/s]
Type: sequence Type: Mass flow
-
m_dot_tes_hot_out¶ TES hot out [kg/s]
Type: sequence Type: Mass flow
-
m_dot_water_pc¶ makeup + cooling [kg/s]
Type: sequence Type: PC water consumption
-
mass_tes_cold¶ TES cold tank mass (end) [kg]
Type: sequence
-
mass_tes_hot¶ TES hot tank mass (end) [kg]
Type: sequence
-
month¶ Resource Month
Type: sequence
-
monthly_energy¶ Monthly Energy [kWh]
Type: sequence
-
n_op_modes¶ Operating modes in reporting timestep
Type: sequence
-
op_mode_1¶ 1st operating mode
Type: sequence
-
op_mode_2¶ 2nd op. mode, if applicable
Type: sequence
-
op_mode_3¶ 3rd op. mode, if applicable
Type: sequence
-
operating_modes_a¶ First 3 operating modes tried
Type: sequence
-
operating_modes_b¶ Next 3 operating modes tried
Type: sequence
-
operating_modes_c¶ Final 3 operating modes tried
Type: sequence
-
pipe_header_P_dsn¶ Field piping header pressure at design [bar]
Type: sequence
-
pipe_header_T_dsn¶ Field piping header temperature at design [C]
Type: sequence
-
pipe_header_diams¶ Field piping header diameters [m]
Type: sequence
-
pipe_header_expansions¶ Number of field piping header expansions [-]
Type: sequence
-
pipe_header_lengths¶ Field piping header lengths [m]
Type: sequence
-
pipe_header_mdot_dsn¶ Field piping header mass flow at design [kg/s]
Type: sequence
-
pipe_header_vel_dsn¶ Field piping header velocity at design [m/s]
Type: sequence
-
pipe_header_wallthk¶ Field piping header wall thicknesses [m]
Type: sequence
-
pipe_loop_P_dsn¶ Field piping loop pressure at design [bar]
Type: sequence
-
pipe_loop_T_dsn¶ Field piping loop temperature at design [C]
Type: sequence
-
pipe_runner_P_dsn¶ Field piping runner pressure at design [bar]
Type: sequence
-
pipe_runner_T_dsn¶ Field piping runner temperature at design [C]
Type: sequence
-
pipe_runner_diams¶ Field piping runner diameters [m]
Type: sequence
-
pipe_runner_expansions¶ Number of field piping runner expansions [-]
Type: sequence
-
pipe_runner_lengths¶ Field piping runner lengths [m]
Type: sequence
-
pipe_runner_mdot_dsn¶ Field piping runner mass flow at design [kg/s]
Type: sequence
-
pipe_runner_vel_dsn¶ Field piping runner velocity at design [m/s]
Type: sequence
-
pipe_runner_wallthk¶ Field piping runner wall thicknesses [m]
Type: sequence
-
pipe_tes_P_dsn¶ Pressure in TES pipes at design conditions [bar]
Type: sequence
-
pipe_tes_T_dsn¶ Temperature in TES pipes at design conditions [C]
Type: sequence
-
pipe_tes_diams¶ Pipe diameters in TES [m]
Type: sequence
-
pipe_tes_lengths¶ Pipe lengths in TES [m]
Type: sequence
-
pipe_tes_mdot_dsn¶ Mass flow TES pipes at design conditions [kg/s]
Type: sequence
-
pipe_tes_vel_dsn¶ Velocity in TES pipes at design conditions [m/s]
Type: sequence
-
pipe_tes_wallthk¶ Pipe wall thickness in TES [m]
Type: sequence
-
pres¶ Resource Pressure [mbar]
Type: sequence
-
pricing_mult¶ PPA price multiplier
Type: sequence
-
q_balance¶ Relative energy balance error
Type: sequence
-
q_ch_tes¶ TES charge thermal power [MWt]
Type: sequence
-
q_dc_tes¶ TES discharge thermal power [MWt]
Type: sequence
-
q_dot_est_cr_on¶ Estimate rec. thermal power TO HTF [MWt]
Type: sequence
-
q_dot_est_cr_su¶ Estimate rec. startup thermal power [MWt]
Type: sequence
-
q_dot_est_tes_ch¶ Estimate max TES charge thermal power [MWt]
Type: sequence
-
q_dot_est_tes_dc¶ Estimate max TES discharge thermal power [MWt]
Type: sequence
-
q_dot_freeze_prot¶ Field freeze protection required [MWt]
Type: sequence
-
q_dot_htf_sf_out¶ Field thermal power leaving in HTF [MWt]
Type: sequence
-
q_dot_pc_max¶ Max thermal power to PC [MWt]
Type: sequence
-
q_dot_pc_min¶ Thermal power for PC min operation [MWt]
Type: sequence
-
q_dot_pc_sb¶ Thermal power for PC standby [MWt]
Type: sequence
-
q_dot_pc_startup¶ PC startup thermal power [MWt]
Type: sequence
-
q_dot_pc_target¶ Target thermal power to PC [MWt]
Type: sequence
-
q_dot_piping_loss¶ Field piping thermal losses [MWt]
Type: sequence
-
q_dot_rec_abs¶ Receiver thermal power absorbed [MWt]
Type: sequence
-
q_dot_rec_inc¶ Receiver thermal power incident [MWt]
Type: sequence
-
q_dot_rec_thermal_loss¶ Receiver thermal losses [MWt]
Type: sequence
-
q_inc_sf_tot¶ Field thermal power incident [MWt]
Type: sequence
-
q_pb¶ PC input energy [MWt]
Type: sequence
-
q_pc_startup¶ PC startup thermal energy [MWht]
Type: sequence
-
q_tes_heater¶ TES freeze protection power [MWe]
Type: sequence
-
qinc_costh¶ Field thermal power incident after cosine [MWt]
Type: sequence
-
recirculating¶ Field recirculating (bypass valve open) [-]
Type: sequence
-
rh¶ Resource Relative Humidity [%]
Type: sequence
-
sim_duration¶ Computational time of timeseries simulation [s]
Type: float
-
solar_multiple_actual¶ Actual solar multiple of system [-]
Type: float
-
solazi¶ Resource Solar Azimuth [deg]
Type: sequence
-
solzen¶ Resource Solar Zenith [deg]
Type: sequence
-
tank_losses¶ TES thermal losses [MWt]
Type: sequence
-
tdry¶ Resource Dry bulb temperature [C]
Type: sequence
-
time_hr¶ Time at end of timestep [hr]
Type: sequence
-
tou_value¶ CSP operating Time-of-use value
Type: sequence
-
twet¶ Resource Wet bulb temperature [C]
Type: sequence
-
wspd¶ Resource Wind Speed [m/s]
Type: sequence
-