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

class PySAM.TroughPhysicalProcessHeat.TroughPhysicalProcessHeat.SystemDesign
assign() → None

Assign attributes from dictionary

SystemDesign_vals = { var: val, ...}

export() → dict

Export attributes into dictionary

tshours

float: Equivalent full-load thermal storage hours [hr]

Required: True

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

class PySAM.TroughPhysicalProcessHeat.TroughPhysicalProcessHeat.Powerblock
assign() → None

Assign attributes from dictionary

Powerblock_vals = { var: val, ...}

export() → dict

Export attributes into dictionary

L_rnr_pb

float: Length of runner pipe in power block [m]

Required: True

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]