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”
  • “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

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
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(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

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

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_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_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