TroughPhysicalProcessHeat¶
Wrapper for SAM Simulation Core model: cmod_trough_physical_process_heat.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.
TroughPhysicalProcessHeat model description
Parabolic trough for industrial process heat applications
-
PySAM.TroughPhysicalProcessHeat.
default
(config) → TroughPhysicalProcessHeat¶ Use financial model-specific default attributes config options:
- “PhysicalTroughIPHLCOHCalculator”
- “PhysicalTroughIPHNone”
-
PySAM.TroughPhysicalProcessHeat.
new
() → TroughPhysicalProcessHeat¶
-
PySAM.TroughPhysicalProcessHeat.
wrap
(ssc_data_t) → TroughPhysicalProcessHeat¶ Use existing PySSC data
Warning
Do not call PySSC.data_free on the ssc_data_t provided to
wrap
Functions¶
-
class
PySAM.TroughPhysicalProcessHeat.
TroughPhysicalProcessHeat
¶ 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
-
Weather Group¶
-
class
PySAM.TroughPhysicalProcessHeat.TroughPhysicalProcessHeat.
Weather
¶ -
assign
() → None¶ Assign attributes from dictionary
Weather_vals = { var: val, ...}
-
export
() → dict¶ Export attributes into dictionary
-
azimuth
¶ float: Azimuth angle of surface/axis [none]
Required: True
-
file_name
¶ str: Local weather file with path [none]
Constraints: LOCAL_FILE
Required: True
-
tilt
¶ float: Tilt angle of surface/axis [none]
Required: True
-
track_mode
¶ float: Tracking mode [none]
Required: True
-
SolarField Group¶
-
class
PySAM.TroughPhysicalProcessHeat.TroughPhysicalProcessHeat.
SolarField
¶ -
assign
() → None¶ Assign attributes from dictionary
SolarField_vals = { var: val, ...}
-
export
() → dict¶ Export attributes into dictionary
-
A_aperture
¶ sequence: Reflective aperture area of the collector [m2]
Required: True
-
AbsorberMaterial
¶ sequence[sequence]: Absorber material type [none]
Required: True
-
AnnulusGas
¶ sequence[sequence]: Annulus gas type (1=air, 26=Ar, 27=H2) [none]
Required: True
-
Ave_Focal_Length
¶ sequence: Average focal length of the collector [m]
Required: True
-
ColperSCA
¶ sequence: Number of individual collector sections in an SCA [none]
Required: True
-
D_2
¶ sequence[sequence]: Inner absorber tube diameter [m]
Required: True
-
D_3
¶ sequence[sequence]: Outer absorber tube diameter [m]
Required: True
-
D_4
¶ sequence[sequence]: Inner glass envelope diameter [m]
Required: True
-
D_5
¶ sequence[sequence]: Outer glass envelope diameter [m]
Required: True
-
D_cpnt
¶ sequence[sequence]: Interconnect component diameters, row=intc, col=cpnt [none]
Required: True
-
D_p
¶ sequence[sequence]: Diameter of the absorber flow plug (optional) [m]
Required: True
-
Design_loss
¶ sequence[sequence]: Receiver heat loss at design [W/m]
Required: True
-
Dirt_HCE
¶ sequence[sequence]: Loss due to dirt on the receiver envelope [none]
Required: True
-
Dirt_mirror
¶ sequence: User-defined dirt on mirror derate [none]
Required: True
-
Distance_SCA
¶ sequence: Piping distance between SCA’s in the field [m]
Required: True
-
EPSILON_4
¶ sequence[sequence]: Inner glass envelope emissivities (Pyrex) [none]
Required: True
-
EPSILON_5
¶ sequence[sequence]: Outer glass envelope emissivities (Pyrex) [none]
Required: True
-
Error
¶ sequence: User-defined general optical error derate [none]
Required: True
-
FieldConfig
¶ float: Number of subfield headers [none]
Required: True
-
Flow_type
¶ sequence[sequence]: Flow type through the absorber [none]
Required: True
-
Fluid
¶ float: Field HTF fluid ID number [none]
Required: True
-
GeomEffects
¶ sequence: User-defined geometry effects derate [none]
Required: True
-
GlazingIntactIn
¶ sequence[sequence]: Glazing intact (broken glass) flag {1=true, else=false} [none]
Required: True
-
HCE_FieldFrac
¶ sequence[sequence]: Fraction of the field occupied by this HCE type [none]
Required: True
-
HDR_rough
¶ float: Header pipe roughness [m]
Required: True
-
IAM_matrix
¶ sequence[sequence]: IAM coefficients, matrix for 4 collectors [none]
Required: True
-
I_bn_des
¶ float: Solar irradiation at design [C]
Required: True
-
K_cpnt
¶ sequence[sequence]: Interconnect component minor loss coefficients, row=intc, col=cpnt [none]
Required: True
-
L_SCA
¶ sequence: Length of the SCA [m]
Required: True
-
L_aperture
¶ sequence: Length of a single mirror/HCE unit [m]
Required: True
-
L_cpnt
¶ sequence[sequence]: Interconnect component lengths, row=intc, col=cpnt [none]
Required: True
-
L_heat_sink_piping
¶ float: Length of piping (full mass flow) through heat sink (if applicable) [none]
Required: True
-
L_rnr_per_xpan
¶ float: Threshold length of straight runner pipe without an expansion loop [m]
Required: True
-
L_xpan_hdr
¶ float: Compined perpendicular lengths of each header expansion loop [m]
Required: True
-
L_xpan_rnr
¶ float: Compined perpendicular lengths of each runner expansion loop [m]
Required: True
-
Min_rnr_xpans
¶ float: Minimum number of expansion loops per single-diameter runner section [none]
Required: True
-
N_hdr_per_xpan
¶ float: Number of collector loops per expansion loop [none]
Required: True
-
N_max_hdr_diams
¶ float: Maximum number of diameters in each of the hot and cold headers [none]
Required: True
-
P_a
¶ sequence[sequence]: Annulus gas pressure [torr]
Required: True
-
Pipe_hl_coef
¶ float: Loss coefficient from the header, runner pipe, and non-HCE piping [m/s]
Required: True
-
Rho_mirror_clean
¶ sequence: User-defined clean mirror reflectivity [none]
Required: True
-
Rough
¶ sequence[sequence]: Roughness of the internal surface [m]
Required: True
-
Row_Distance
¶ float: Spacing between rows (centerline to centerline) [m]
Required: True
-
SCADefocusArray
¶ sequence: Collector defocus order [none]
Required: True
-
SCAInfoArray
¶ sequence[sequence]: Receiver (,1) and collector (,2) type for each assembly in loop [none]
Required: True
-
SCA_drives_elec
¶ float: Tracking power, in Watts per SCA drive [W/m2-K]
Required: True
-
Shadowing
¶ sequence[sequence]: Receiver bellows shadowing loss factor [none]
Required: True
-
T_fp
¶ float: Freeze protection temperature (heat trace activation temperature) [none]
Required: True
-
T_loop_in_des
¶ float: Design loop inlet temperature [C]
Required: True
-
T_loop_out
¶ float: Target loop outlet temperature [C]
Required: True
-
Tau_envelope
¶ sequence[sequence]: Envelope transmittance [none]
Required: True
-
TrackingError
¶ sequence: User-defined tracking error derate [none]
Required: True
-
Type_cpnt
¶ sequence[sequence]: Interconnect component type, row=intc, col=cpnt [none]
Required: True
-
V_hdr_max
¶ float: Maximum HTF velocity in the header at design [W/m2]
Required: True
-
V_hdr_min
¶ float: Minimum HTF velocity in the header at design [m/s]
Required: True
-
W_aperture
¶ sequence: The collector aperture width (Total structural area used for shadowing) [m]
Required: True
-
accept_init
¶ float: In acceptance testing mode - require steady-state startup [none]
Required: True
-
accept_loc
¶ float: In acceptance testing mode - temperature sensor location [1/2]
Info: hx/loop
Required: True
-
accept_mode
¶ float: Acceptance testing mode? [0/1]
Info: no/yes
Required: True
-
alpha_abs
¶ sequence[sequence]: Absorber absorptance [none]
Required: True
-
alpha_env
¶ sequence[sequence]: Envelope absorptance [none]
Required: True
-
calc_design_pipe_vals
¶ float: Calculate temps and pressures at design conditions for runners and headers [none]
Required: True
-
custom_sf_pipe_sizes
¶ float: Use custom solar field pipe diams, wallthks, and lengths [none]
Required: True
-
epsilon_3_11
¶ sequence[sequence]: Absorber emittance for receiver type 1 variation 1 [none]
Required: True
-
epsilon_3_12
¶ sequence[sequence]: Absorber emittance for receiver type 1 variation 2 [none]
Required: True
-
epsilon_3_13
¶ sequence[sequence]: Absorber emittance for receiver type 1 variation 3 [none]
Required: True
-
epsilon_3_14
¶ sequence[sequence]: Absorber emittance for receiver type 1 variation 4 [none]
Required: True
-
epsilon_3_21
¶ sequence[sequence]: Absorber emittance for receiver type 2 variation 1 [none]
Required: True
-
epsilon_3_22
¶ sequence[sequence]: Absorber emittance for receiver type 2 variation 2 [none]
Required: True
-
epsilon_3_23
¶ sequence[sequence]: Absorber emittance for receiver type 2 variation 3 [none]
Required: True
-
epsilon_3_24
¶ sequence[sequence]: Absorber emittance for receiver type 2 variation 4 [none]
Required: True
-
epsilon_3_31
¶ sequence[sequence]: Absorber emittance for receiver type 3 variation 1 [none]
Required: True
-
epsilon_3_32
¶ sequence[sequence]: Absorber emittance for receiver type 3 variation 2 [none]
Required: True
-
epsilon_3_33
¶ sequence[sequence]: Absorber emittance for receiver type 3 variation 3 [none]
Required: True
-
epsilon_3_34
¶ sequence[sequence]: Absorber emittance for receiver type 3 variation 4 [none]
Required: True
-
epsilon_3_41
¶ sequence[sequence]: Absorber emittance for receiver type 4 variation 1 [none]
Required: True
-
epsilon_3_42
¶ sequence[sequence]: Absorber emittance for receiver type 4 variation 2 [none]
Required: True
-
epsilon_3_43
¶ sequence[sequence]: Absorber emittance for receiver type 4 variation 3 [none]
Required: True
-
epsilon_3_44
¶ sequence[sequence]: Absorber emittance for receiver type 4 variation 4 [none]
Required: True
-
eta_pump
¶ float: HTF pump efficiency [none]
Required: True
-
is_model_heat_sink_piping
¶ float: Should model consider piping through heat sink? [none]
Required: True
-
m_dot_htfmax
¶ float: Maximum loop HTF flow rate [kg/s]
Required: True
-
m_dot_htfmin
¶ float: Minimum loop HTF flow rate [kg/s]
Required: True
-
mc_bal_cold
¶ float: Heat capacity of the balance of plant on the cold side [kWht/K-MWt]
Required: True
-
mc_bal_hot
¶ float: Heat capacity of the balance of plant on the hot side [kWht/K-MWt]
Info: none
Required: True
-
mc_bal_sca
¶ float: Non-HTF heat capacity associated with each SCA - per meter basis [Wht/K-m]
Required: True
-
nColt
¶ float: Number of collector types [none]
Options: constant=4
Required: True
-
nHCEVar
¶ float: Number of HCE variants per type [none]
Required: True
-
nHCEt
¶ float: Number of HCE types [none]
Required: True
-
nLoops
¶ float: Number of loops in the field [none]
Required: True
-
nSCA
¶ float: Number of SCAs in a loop [none]
Required: True
-
northsouth_field_sep
¶ float: North/south separation between subfields. 0 = SCAs are touching [m]
Required: True
-
offset_xpan_hdr
¶ float: Location of first header expansion loop. 1 = after first collector loop [none]
Required: True
-
sf_hdr_diams
¶ sequence[sequence]: Custom header diameters [m]
Required: True
-
sf_hdr_lengths
¶ sequence[sequence]: Custom header lengths [m]
Required: True
-
sf_hdr_wallthicks
¶ sequence[sequence]: Custom header wall thicknesses [m]
Required: True
-
sf_rnr_diams
¶ sequence[sequence]: Custom runner diameters [m]
Required: True
-
sf_rnr_lengths
¶ sequence[sequence]: Custom runner lengths [m]
Required: True
-
sf_rnr_wallthicks
¶ sequence[sequence]: Custom runner wall thicknesses [m]
Required: True
-
solar_mult
¶ float: Solar multiple [none]
Required: True
-
theta_dep
¶ float: Deploy angle [deg]
Required: True
-
theta_stow
¶ float: Stow angle [deg]
Required: True
-
washing_frequency
¶ float: Mirror washing frequency [-/year]
Required: True
-
water_usage_per_wash
¶ float: Water usage per wash [L/m2_aper]
Required: True
-
wind_stow_speed
¶ float: Trough wind stow speed [m/s]
Required: set to 50 if not provided.
-
Controller Group¶
-
class
PySAM.TroughPhysicalProcessHeat.TroughPhysicalProcessHeat.
Controller
¶ -
assign
() → None¶ Assign attributes from dictionary
Controller_vals = { var: val, ...}
-
export
() → dict¶ Export attributes into dictionary
-
field_fl_props
¶ sequence[sequence]: User defined field fluid property data [-]
Required: True
-
pb_pump_coef
¶ float: Pumping power to move 1kg of HTF through PB loop [kW/kg]
Required: True
-
q_pb_design
¶ float: Design heat input to power block [MWt]
Required: True
-
SystemDesign Group¶
TES Group¶
-
class
PySAM.TroughPhysicalProcessHeat.TroughPhysicalProcessHeat.
TES
¶ -
assign
() → None¶ Assign attributes from dictionary
TES_vals = { var: val, ...}
-
export
() → dict¶ Export attributes into dictionary
-
cold_tank_Thtr
¶ float: Minimum allowable cold tank HTF temp [C]
Required: True
-
cold_tank_max_heat
¶ float: Rated heater capacity for cold tank heating [MW]
Required: True
-
h_tank
¶ float: Total height of tank (height of HTF when tank is full [m]
Required: True
-
init_hot_htf_percent
¶ float: Initial fraction of avail. vol that is hot [%]
Required: True
-
tank_pairs
¶ float: Number of equivalent tank pairs [-]
Constraints: INTEGER
Required: True
-
u_tank
¶ float: Loss coefficient from the tank [W/m2-K]
Required: True
-
TES2tank Group¶
-
class
PySAM.TroughPhysicalProcessHeat.TroughPhysicalProcessHeat.
TES2tank
¶ -
assign
() → None¶ Assign attributes from dictionary
TES2tank_vals = { var: val, ...}
-
export
() → dict¶ Export attributes into dictionary
-
h_tank_min
¶ float: Minimum allowable HTF height in storage tank [m]
Required: True
-
hot_tank_Thtr
¶ float: Minimum allowable hot tank HTF temp [C]
Required: True
-
hot_tank_max_heat
¶ float: Rated heater capacity for hot tank heating [MW]
Required: True
-
Tou Group¶
System Group¶
Powerblock Group¶
AdjustmentFactors Group¶
-
class
PySAM.TroughPhysicalProcessHeat.TroughPhysicalProcessHeat.
AdjustmentFactors
¶ -
assign
() → None¶ Assign attributes from dictionary
-
export
() → Dict¶ Export attributes into dictionary
-
constant
¶ type: float
-
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.TroughPhysicalProcessHeat.TroughPhysicalProcessHeat.
Outputs
¶ -
assign
() → None¶ Assign attributes from dictionary
Outputs_vals = { var: val, ...}
-
export
() → dict¶ Export attributes into dictionary
-
CosTh_ave
¶ sequence: Field collector cosine efficiency
-
EndLoss_ave
¶ sequence: Field collector optical end loss
-
EqOpteff
¶ sequence: Field optical efficiency before defocus
-
IAM_ave
¶ sequence: Field collector incidence angle modifier
-
RowShadow_ave
¶ sequence: Field collector row shadowing loss
-
SCAs_def
¶ sequence: Field fraction of focused SCAs
-
T_field_cold_in
¶ sequence: Field timestep-averaged inlet temperature [C]
-
T_field_hot_out
¶ sequence: Field timestep-averaged outlet temperature [C]
-
T_heat_sink_in
¶ sequence: Heat sink HTF inlet temp [C]
-
T_heat_sink_out
¶ sequence: Heat sink HTF outlet temp [C]
-
T_rec_cold_in
¶ sequence: Loop timestep-averaged inlet temperature [C]
-
T_rec_hot_out
¶ sequence: Loop timestep-averaged outlet temperature [C]
-
T_tes_cold
¶ sequence: TES cold temperature [C]
-
T_tes_hot
¶ sequence: TES hot temperature [C]
-
Theta_ave
¶ sequence: Field collector solar incidence angle [deg]
-
W_dot_field_pump
¶ sequence: Field htf pumping power [MWe]
-
W_dot_parasitic_tot
¶ sequence: System total electrical parasitic [MWe]
-
W_dot_pc_pump
¶ sequence: Heat sink pumping power [MWe]
-
W_dot_sca_track
¶ sequence: Field collector tracking power [MWe]
-
annual_electricity_consumption
¶ float: Annual electricity consumption w/ avail derate [kWe-hr]
-
annual_energy
¶ float: Annual Net Thermal Energy Production w/ avail derate [kWt-hr]
-
annual_field_freeze_protection
¶ float: Annual thermal power for field freeze protection [kWt-hr]
-
annual_gross_energy
¶ float: Annual Gross Thermal Energy Production w/ avail derate [kWt-hr]
-
annual_tes_freeze_protection
¶ float: Annual thermal power for TES freeze protection [kWt-hr]
-
annual_thermal_consumption
¶ float: Annual thermal freeze protection required [kWt-hr]
-
annual_total_water_use
¶ float: Total Annual Water Usage [m^3]
-
beam
¶ sequence: Resource Beam normal irradiance [W/m2]
-
deltaP_field
¶ sequence: Field pressure drop [bar]
-
dni_costh
¶ sequence: Field collector DNI-cosine product [W/m2]
-
e_ch_tes
¶ sequence: TES charge state [MWht]
-
e_dot_field_int_energy
¶ sequence: Field change in material/htf internal energy [MWt]
-
hour_day
¶ sequence: Resource Hour of Day
-
m_dot_balance
¶ sequence: Relative mass flow balance error
-
m_dot_field_delivered
¶ sequence: Field total mass flow delivered [kg/s]
-
m_dot_field_recirc
¶ sequence: Field total mass flow recirculated [kg/s]
-
m_dot_htf_heat_sink
¶ sequence: Heat sink HTF mass flow [kg/s]
-
m_dot_loop
¶ sequence: Receiver mass flow rate [kg/s]
-
m_dot_tes_ch
¶ sequence: TES charge mass flow rate [kg/s]
-
m_dot_tes_dc
¶ sequence: TES discharge mass flow rate [kg/s]
-
month
¶ sequence: Resource Month
-
op_mode_1
¶ sequence: 1st operating mode
-
op_mode_2
¶ sequence: 2nd op. mode, if applicable
-
op_mode_3
¶ sequence: 3rd op. mode, if applicable
-
pres
¶ sequence: Resource Pressure [mbar]
-
q_balance
¶ sequence: Relative energy balance error
-
q_ch_tes
¶ sequence: TES charge thermal power [MWt]
-
q_dc_tes
¶ sequence: TES discharge thermal power [MWt]
-
q_dot_freeze_prot
¶ sequence: Field freeze protection required [MWt]
-
q_dot_htf_sf_out
¶ sequence: Field thermal power leaving in HTF [MWt]
-
q_dot_piping_loss
¶ sequence: Field piping thermal losses [MWt]
-
q_dot_rec_abs
¶ sequence: Receiver thermal power absorbed [MWt]
-
q_dot_rec_inc
¶ sequence: Receiver thermal power incident [MWt]
-
q_dot_rec_thermal_loss
¶ sequence: Receiver thermal losses [MWt]
-
q_dot_to_heat_sink
¶ sequence: Heat sink thermal power [MWt]
-
q_inc_sf_tot
¶ sequence: Field thermal power incident [MWt]
-
q_tes_heater
¶ sequence: TES freeze protection power [MWe]
-
qinc_costh
¶ sequence: Field thermal power incident after cosine [MWt]
-
solazi
¶ sequence: Resource Solar Azimuth [deg]
-
solzen
¶ sequence: Resource Solar Zenith [deg]
-
tank_losses
¶ sequence: TES thermal losses [MWt]
-
tdry
¶ sequence: Resource Dry bulb temperature [C]
-
time_hr
¶ sequence: Time at end of timestep [hr]
-
twet
¶ sequence: Resource Wet bulb temperature [C]
-
wspd
¶ sequence: Resource Wind Speed [m/s]
-