Swh

Solar water heating model for residential and commercial building applications

PySAM.Swh.default(config) → Swh

Load defaults for the configuration config. Available configurations are:

  • “SolarWaterHeatingCommercial”
  • “SolarWaterHeatingLCOECalculator”
  • “SolarWaterHeatingNone”
  • “SolarWaterHeatingResidential”

Note

Some inputs do not have default values and may be assigned a value from the variable’s Required attribute. See variable attribute descriptions below.

PySAM.Swh.from_existing(data, optional config) → Swh

Share data with an existing PySAM class. If optional config is a valid configuration name, load the module’s defaults for that configuration.

PySAM.Swh.new() → Swh
PySAM.Swh.wrap(ssc_data_t) → Swh

Load data from a PySSC object.

Warning

Do not call PySSC.data_free on the ssc_data_t provided to wrap()

Swh is a wrapper for the SSC compute module cmod_swh.cpp

Interdependent Variables

The variables listed below are interdependent with other variables. If you change the value of one of these variables, you may need to change values of other variables. The SAM user interface manages these interdependent variables, but in PySAM, it is up to you change the value of all interdependent variables so they are consistent. See Interdependent Variables for examples and details.

  • FRUL
  • FRta
  • area_coll
  • ncoll
  • system_capacity

Functions

class PySAM.Swh.Swh

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 = { 'Solar Resource': { 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 = { 'Solar Resource': { 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.

SolarResource Group

class PySAM.Swh.Swh.SolarResource
assign(dict) → None

Assign attributes from dictionary, overwriting but not removing values.

SolarResource_vals = { var: val, ...}

export() → dict

Export attributes into dictionary.

replace(dict) → None

Replace attributes from dictionary, unassigning values not present in input dict.

SolarResource_vals = { var: val, ...}

solar_resource_data

Weather data

Info: dn,df,tdry,wspd,lat,lon,tz

Required: False for configuration with default inputs. May be required if a variable dependent on its value changes. Example: For the Detailed PV - Single Owner configuration, only Subarray 1 is enabled in the configuration defaults, so Subarray 2 inputs would not be required; if Subarray 2 is enabled, then Subarray 2 inputs is required.

Type:dict
solar_resource_file

local weather file path

Constraints: LOCAL_FILE

Required: False for configuration with default inputs. May be required if a variable dependent on its value changes. Example: For the Detailed PV - Single Owner configuration, only Subarray 1 is enabled in the configuration defaults, so Subarray 2 inputs would not be required; if Subarray 2 is enabled, then Subarray 2 inputs is required.

Type:str

SWH Group

class PySAM.Swh.Swh.SWH
assign(dict) → None

Assign attributes from dictionary, overwriting but not removing values.

SWH_vals = { var: val, ...}

export() → dict

Export attributes into dictionary.

replace(dict) → None

Replace attributes from dictionary, unassigning values not present in input dict.

SWH_vals = { var: val, ...}

FRUL

FRUL

Required: True

The value of the following variables depends on FRUL:

  • system_capacity
Type:float
FRta

FRta

Required: True

The value of the following variables depends on FRta:

  • system_capacity
Type:float
T_room

Temperature around solar tank [C]

Constraints: POSITIVE

Required: True

Type:float
T_set

Set temperature [C]

Constraints: POSITIVE

Required: True

Type:float
T_tank_max

Max temperature in solar tank [C]

Constraints: POSITIVE

Required: True

Type:float
U_tank

Solar tank heat loss coefficient [W/m2K]

Constraints: POSITIVE

Required: True

Type:float
V_tank

Solar tank volume [m3]

Constraints: POSITIVE

Required: True

Type:float
albedo

Ground reflectance factor [0..1]

Constraints: FACTOR

Required: True

Type:float
area_coll

Single collector area [m2]

Constraints: POSITIVE

Required: True

The value of the following variables depends on area_coll:

  • system_capacity
Type:float
azimuth

Collector azimuth [deg]

Options: 90=E,180=S

Constraints: MIN=0,MAX=360

Required: True

Type:float
custom_mains

Custom mains [C]

Constraints: LENGTH=8760

Required: True

Type:sequence
custom_set

Custom set points [C]

Constraints: LENGTH=8760

Required: True

Type:sequence
fluid

Working fluid in system

Info: Water,Glycol

Constraints: INTEGER,MIN=0,MAX=1

Required: True

Type:float
hx_eff

Heat exchanger effectiveness [0..1]

Constraints: POSITIVE

Required: True

Type:float
iam

Incidence angle modifier

Required: True

Type:float
irrad_mode

Irradiance input mode [0/1/2]

Info: Beam+Diff,Global+Beam,Global+Diff

Constraints: INTEGER,MIN=0,MAX=2

Required: False. Automatically set to 0 if not assigned explicitly or loaded from defaults.

Type:float
load

Electricity load (year 1) [kW]

Type:sequence
load_escalation

Annual load escalation [%/year]

Required: False. Automatically set to 0 if not assigned explicitly or loaded from defaults.

Type:sequence
mdot

Total system mass flow rate [kg/s]

Constraints: POSITIVE

Required: True

Type:float
ncoll

Number of collectors

Constraints: POSITIVE,INTEGER

Required: True

The value of the following variables depends on ncoll:

  • system_capacity
Type:float
pipe_diam

Pipe diameter [m]

Constraints: POSITIVE

Required: True

Type:float
pipe_insul

Pipe insulation thickness [m]

Constraints: POSITIVE

Required: True

Type:float
pipe_k

Pipe insulation conductivity [W/m-C]

Constraints: POSITIVE

Required: True

Type:float
pipe_length

Length of piping in system [m]

Constraints: POSITIVE

Required: True

Type:float
pump_eff

Pumping efficiency [%]

Constraints: PERCENT

Required: True

Type:float
pump_power

Pump power [W]

Constraints: POSITIVE

Required: True

Type:float
scaled_draw

Hot water draw [kg/hr]

Constraints: LENGTH=8760

Required: True

Type:sequence
shading_azal

Azimuth x altitude beam shading loss [%]

Required: False for configuration with default inputs. May be required if a variable dependent on its value changes. Example: For the Detailed PV - Single Owner configuration, only Subarray 1 is enabled in the configuration defaults, so Subarray 2 inputs would not be required; if Subarray 2 is enabled, then Subarray 2 inputs is required.

Type:sequence[sequence]
shading_diff

Diffuse shading loss [%]

Required: False for configuration with default inputs. May be required if a variable dependent on its value changes. Example: For the Detailed PV - Single Owner configuration, only Subarray 1 is enabled in the configuration defaults, so Subarray 2 inputs would not be required; if Subarray 2 is enabled, then Subarray 2 inputs is required.

Type:float
shading_mxh

Month x Hour beam shading loss [%]

Required: False for configuration with default inputs. May be required if a variable dependent on its value changes. Example: For the Detailed PV - Single Owner configuration, only Subarray 1 is enabled in the configuration defaults, so Subarray 2 inputs would not be required; if Subarray 2 is enabled, then Subarray 2 inputs is required.

Type:sequence[sequence]
shading_timestep

Time step beam shading loss [%]

Required: False for configuration with default inputs. May be required if a variable dependent on its value changes. Example: For the Detailed PV - Single Owner configuration, only Subarray 1 is enabled in the configuration defaults, so Subarray 2 inputs would not be required; if Subarray 2 is enabled, then Subarray 2 inputs is required.

Type:sequence[sequence]
sky_model

Tilted surface irradiance model [0/1/2]

Info: Isotropic,HDKR,Perez

Constraints: INTEGER,MIN=0,MAX=2

Required: False. Automatically set to 1 if not assigned explicitly or loaded from defaults.

Type:float
system_capacity

Nameplate capacity [kW]

Required: True

The value of system_capacity depends on the following variables:

  • FRUL
  • FRta
  • area_coll
  • ncoll
Type:float
tank_h2d_ratio

Solar tank height to diameter ratio

Constraints: POSITIVE

Required: True

Type:float
test_flow

Flow rate used in collector test [kg/s]

Constraints: POSITIVE

Required: True

Type:float
test_fluid

Fluid used in collector test

Info: Water,Glycol

Constraints: INTEGER,MIN=0,MAX=1

Required: True

Type:float
tilt

Collector tilt [deg]

Constraints: MIN=0,MAX=90

Required: True

Type:float
use_custom_mains

Use custom mains [%]

Constraints: INTEGER,MIN=0,MAX=1

Required: True

Type:float
use_custom_set

Use custom set points [%]

Constraints: INTEGER,MIN=0,MAX=1

Required: True

Type:float

AdjustmentFactors Group

class PySAM.Swh.Swh.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.Swh.Swh.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, ...}

I_incident

Irradiance - Incident [W/m2]

Type:sequence
I_transmitted

Irradiance - Transmitted [W/m2]

Type:sequence
P_pump

P pump [kW]

Type:sequence
Q_aux

Q auxiliary [kW]

Type:sequence
Q_auxonly

Q auxiliary only [kW]

Type:sequence
Q_deliv

Q delivered [kW]

Type:sequence
Q_loss

Q loss [kW]

Type:sequence
Q_transmitted

Q transmitted [kW]

Type:sequence
Q_useful

Q useful [kW]

Type:sequence
T_amb

T ambient [C]

Type:sequence
T_cold

T cold [C]

Type:sequence
T_deliv

T delivered [C]

Type:sequence
T_hot

T hot [C]

Type:sequence
T_mains

T mains [C]

Type:sequence
T_tank

T tank [C]

Type:sequence
V_cold

V cold [m3]

Type:sequence
V_hot

V hot [m3]

Type:sequence
annual_Q_aux

Q auxiliary [kWh]

Type:float
annual_Q_auxonly

Q auxiliary only [kWh]

Type:float
annual_Q_deliv

Q delivered [kWh]

Type:float
annual_energy

System energy [kWh]

Type:float
annual_energy_distribution_time

Annual energy production as function of time [kW]

Type:sequence[sequence]
beam

Irradiance - Beam [W/m2]

Type:sequence
capacity_factor

Capacity factor [%]

Type:float
diffuse

Irradiance - Diffuse [W/m2]

Type:sequence
draw

Hot water draw [kg/hr]

Type:sequence
gen

System power generated [kW]

Type:sequence
kwh_per_kw

First year kWh/kW [kWh/kW]

Type:float
mode

Operation mode

Type:sequence
monthly_Q_aux

Q auxiliary [kWh]

Type:sequence
monthly_Q_auxonly

Q auxiliary only [kWh]

Type:sequence
monthly_Q_deliv

Q delivered [kWh]

Type:sequence
monthly_energy

System energy [kWh]

Type:sequence
shading_loss

Shading losses [%]

Type:sequence
solar_fraction

Solar fraction

Type:float
ts_shift_hours

Time offset for interpreting time series outputs [hours]

Type:float