TroughPhysical¶
Wrapper for SAM Simulation Core model: cmod_trough_physical.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.
TroughPhysical model description
CSP parabolic trough model based on heat transfer and thermodynamic principles for power generation
-
PySAM.TroughPhysical.
default
(config) → TroughPhysical¶ Use financial config-specific default attributes config options:
- “PhysicalTroughAllEquityPartnershipFlip”
- “PhysicalTroughCommercial”
- “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
-
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¶
SolarField Group¶
-
class
PySAM.TroughPhysical.TroughPhysical.
SolarField
¶ -
assign
() → None¶ Assign attributes from dictionary
SolarField_vals = { var: val, ...}
-
export
() → dict¶ Export attributes into dictionary
-
A_aperture
¶ Reflective aperture area of the collector [m2]
Required: True
- This variable may need to be updated if the values of the following have changed:
- SCAInfoArray
- nColt
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
- This variable may need to be updated if the values of the following have changed:
- SCAInfoArray
- nColt
Type: sequence
-
ColperSCA
¶ Number of individual collector sections in an SCA [none]
Required: True
- This variable may need to be updated if the values of the following have changed:
- SCAInfoArray
- nColt
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
- This variable may need to be updated if the values of the following have changed:
- nSCA
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
- This variable may need to be updated if the values of the following have changed:
- SCAInfoArray
- nColt
Type: sequence
-
Distance_SCA
¶ Piping distance between SCA’s in the field [m]
Required: True
- This variable may need to be updated if the values of the following have changed:
- SCAInfoArray
- nColt
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
- This variable may need to be updated if the values of the following have changed:
- SCAInfoArray
- nColt
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
- This variable may need to be updated if the values of the following have changed:
- SCAInfoArray
- nColt
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
- Changes to this variable may require updating the values of the following:
- nLoops
- solar_mult
Type: float
-
K_cpnt
¶ Interconnect component minor loss coefficients, row=intc, col=cpnt [none]
Required: True
- This variable may need to be updated if the values of the following have changed:
- nSCA
Type: sequence[sequence]
-
L_SCA
¶ Length of the SCA [m]
Required: True
- This variable may need to be updated if the values of the following have changed:
- SCAInfoArray
- nColt
Type: sequence
-
L_aperture
¶ Length of a single mirror/HCE unit [m]
Required: True
- This variable may need to be updated if the values of the following have changed:
- SCAInfoArray
- nColt
Type: sequence
-
L_cpnt
¶ Interconnect component lengths, row=intc, col=cpnt [none]
Required: True
- This variable may need to be updated if the values of the following have changed:
- nSCA
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
- This variable may need to be updated if the values of the following have changed:
- SCAInfoArray
- nColt
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
-
SCADefocusArray
¶ Collector defocus order [none]
Required: True
Type: sequence
-
SCAInfoArray
¶ Receiver (,1) and collector (,2) type for each assembly in loop [none]
Required: True
- Changes to this variable may require updating the values of the following:
- A_aperture
- Ave_Focal_Length
- ColperSCA
- Dirt_mirror
- Distance_SCA
- Error
- GeomEffects
- L_SCA
- L_aperture
- Rho_mirror_clean
- TrackingError
- W_aperture
Type: sequence[sequence]
-
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
- This variable may need to be updated if the values of the following have changed:
- SCAInfoArray
- nColt
Type: sequence
-
Type_cpnt
¶ Interconnect component type, row=intc, col=cpnt [none]
Required: True
- This variable may need to be updated if the values of the following have changed:
- nSCA
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
- This variable may need to be updated if the values of the following have changed:
- SCAInfoArray
- nColt
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
- Changes to this variable may require updating the values of the following:
- A_aperture
- Ave_Focal_Length
- ColperSCA
- Dirt_mirror
- Distance_SCA
- Error
- GeomEffects
- L_SCA
- L_aperture
- Rho_mirror_clean
- TrackingError
- W_aperture
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
- Changes to this variable may require updating the values of the following:
- solar_mult
- This variable may need to be updated if the values of the following have changed:
- I_bn_des
- P_ref
- eta_ref
Type: float
-
nSCA
¶ Number of SCAs in a loop [none]
Required: True
- Changes to this variable may require updating the values of the following:
- D_cpnt
- K_cpnt
- L_cpnt
- Type_cpnt
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]
-
solar_mult
¶ Solar multiple [none]
Required: True
- This variable may need to be updated if the values of the following have changed:
- I_bn_des
- P_ref
- eta_ref
- nLoops
Type: float
-
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
() → None¶ Assign attributes from dictionary
Powerblock_vals = { var: val, ...}
-
export
() → dict¶ Export attributes into dictionary
-
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
- Changes to this variable may require updating the values of the following:
- nLoops
- solar_mult
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
- Changes to this variable may require updating the values of the following:
- nLoops
- solar_mult
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
() → None¶ Assign attributes from dictionary
TES_vals = { var: val, ...}
-
export
() → dict¶ Export attributes into dictionary
-
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
-
is_hx
¶ Heat exchanger (HX) exists (1=yes, 0=no) [-]
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
() → None¶ Assign attributes from dictionary
Tou_vals = { var: val, ...}
-
export
() → dict¶ Export attributes into dictionary
-
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: If not provided, assumed to be 1
Type: float
-
dispatch_factor2
¶ Dispatch payment factor 2
Required: If not provided, assumed to be 1
Type: float
-
dispatch_factor3
¶ Dispatch payment factor 3
Required: If not provided, assumed to be 1
Type: float
-
dispatch_factor4
¶ Dispatch payment factor 4
Required: If not provided, assumed to be 1
Type: float
-
dispatch_factor5
¶ Dispatch payment factor 5
Required: If not provided, assumed to be 1
Type: float
-
dispatch_factor6
¶ Dispatch payment factor 6
Required: If not provided, assumed to be 1
Type: float
-
dispatch_factor7
¶ Dispatch payment factor 7
Required: If not provided, assumed to be 1
Type: float
-
dispatch_factor8
¶ Dispatch payment factor 8
Required: If not provided, assumed to be 1
Type: float
-
dispatch_factor9
¶ Dispatch payment factor 9
Required: If not provided, assumed to be 1
Type: float
-
dispatch_factors_ts
¶ Dispatch payment factor array
Required: True if ppa_multiplier_model=1
Type: sequence
-
dispatch_sched_weekday
¶ 12x24 PPA pricing Weekday schedule
Required: If not provided, assumed to be 1
Type: sequence[sequence]
-
dispatch_sched_weekend
¶ 12x24 PPA pricing Weekend schedule
Required: If not provided, assumed to be 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
- Changes to this variable may require updating the values of the following:
- is_wlim_series
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
- This variable may need to be updated if the values of the following have changed:
- is_dispatch
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
¶ PPA multiplier model [0/1]
Options: 0=diurnal,1=timestep
Constraints: INTEGER,MIN=0
Required: If not provided, assumed to be 0
Type: float
-
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
-
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
-
System Group¶
-
class
PySAM.TroughPhysical.TroughPhysical.
System
¶ -
assign
() → None¶ Assign attributes from dictionary
System_vals = { var: val, ...}
-
export
() → dict¶ Export attributes into dictionary
-
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
() → None¶ Assign attributes from dictionary
Controller_vals = { var: val, ...}
-
export
() → dict¶ Export attributes into dictionary
-
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: True
Type: float
-
tes_diams
¶ Custom TES diameters [m]
Required: True
Type: sequence[sequence]
-
tes_lengths
¶ Custom TES lengths [m]
Required: True
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]
-
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
() → None¶ Assign attributes from dictionary
Outputs_vals = { var: val, ...}
-
export
() → dict¶ Export attributes into dictionary
-
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_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_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_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_loop
¶ Receiver mass flow rate [kg/s]
Type: sequence
-
m_dot_pc
¶ PC HTF mass flow rate [kg/s]
Type: sequence
-
m_dot_tes_ch
¶ TES charge mass flow rate [kg/s]
Type: sequence
-
m_dot_tes_dc
¶ TES discharge mass flow rate [kg/s]
Type: sequence
-
m_dot_water_pc
¶ makeup + cooling [kg/s]
Type: sequence Type: PC water consumption
-
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_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
-
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
-