Solarpilot

Wrapper for SAM Simulation Core model: cmod_solarpilot.cpp

Input Consistency Warning

As described in Possible Problems, some input parameters are interdependent but the equations that enforce consistency are not available in this PySAM module. Therefore, the onus is on the PySAM user to check that interdependencies are correctly handled. The variables which may require additional logic include:

Provided for each of these inputs is a list of other inputs that are potentially interdependent.

Creating an Instance

Refer to the Initializing a Model page for details on the different ways to create an instance of a PySAM class.

Solarpilot model description

Solarpilot

PySAM.Solarpilot.default(config) → Solarpilot

Use default attributes None

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

Share underlying data with an existing PySAM class. If config provided, default attributes are loaded otherwise.

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

Use existing PySSC data

Warning

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

Functions

class PySAM.Solarpilot.Solarpilot

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

SolarPILOT Group

class PySAM.Solarpilot.Solarpilot.SolarPILOT
assign(dict) → None

Assign attributes from dictionary, overwriting but not removing values

SolarPILOT_vals = { var: val, ...}

export() → dict

Export attributes into dictionary

replace(dict) → None

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

SolarPILOT_vals = { var: val, ...}

c_atm_0

Attenuation coefficient 0

Required: If not provided, assumed to be 0.006789

Type:float
c_atm_1

Attenuation coefficient 1

Required: If not provided, assumed to be 0.1046

Type:float
c_atm_2

Attenuation coefficient 2

Required: If not provided, assumed to be -0.0107

Type:float
c_atm_3

Attenuation coefficient 3

Required: If not provided, assumed to be 0.002845

Type:float
calc_fluxmaps

Include fluxmap calculations

Required: If not provided, assumed to be 0

Type:float
cant_type

Heliostat cant method

Required: True

Type:float
check_max_flux

Check max flux at design point

Required: If not provided, assumed to be 0

Type:float
contingency_rate

Contingency for cost overrun [%]

Required: True

Type:float
cost_sf_fixed

Soalr field fixed cost [$]

Required: True

Type:float
delta_flux_hrs

Hourly frequency in flux map lookup

Required: If not provided, assumed to be 1

Type:float
dens_mirror

Ratio of reflective area to profile [frac]

Required: True

Type:float
dni_des

Design-point DNI [W/m2]

Required: True

Type:float
flux_max

Maximum allowable flux

Required: If not provided, assumed to be 1000

Type:float
focus_type

Heliostat focus method

Required: True

Type:float
h_tower

Tower height [m]

Required: True

Type:float
helio_active_fraction

Active fraction of reflective area [frac]

Required: True

Type:float
helio_height

Heliostat height [m]

Required: True

Type:float
helio_optical_error

Optical error [rad]

Required: True

Type:float
helio_positions_in

Heliostat position table

Type:sequence[sequence]
helio_reflectance

Mirror reflectance [frac]

Required: True

Type:float
helio_width

Heliostat width [m]

Required: True

Type:float
heliostat_spec_cost

Heliostat field cost [$/m2]

Required: True

Type:float
is_optimize

Do SolarPILOT optimization

Required: If not provided, assumed to be 0

Type:float
land_max

Max heliostat-dist-to-tower-height ratio

Required: True

Type:float
land_min

Min heliostat-dist-to-tower-height ratio

Required: True

Type:float
land_spec_cost

Total land area cost [$/acre]

Required: True

Type:float
n_facet_x

Number of heliostat facets - X

Required: True

Type:float
n_facet_y

Number of heliostat facets - Y

Required: True

Type:float
n_flux_days

No. days in flux map lookup

Required: If not provided, assumed to be 8

Type:float
n_flux_x

Flux map X resolution

Required: If not provided, assumed to be 12

Type:float
n_flux_y

Flux map Y resolution

Required: If not provided, assumed to be 1

Type:float
opt_algorithm

Optimization algorithm

Required: If not provided, assumed to be 0

Type:float
opt_conv_tol

Optimization convergence tol

Required: If not provided, assumed to be 0.001

Type:float
opt_flux_penalty

Optimization flux overage penalty

Required: True

Type:float
opt_init_step

Optimization initial step size

Required: If not provided, assumed to be 0.05

Type:float
opt_max_iter

Max. number iteration steps

Required: If not provided, assumed to be 200

Type:float
q_design

Receiver thermal design power [MW]

Required: True

Type:float
rec_absorptance

Absorptance [frac]

Required: True

Type:float
rec_aspect

Receiver aspect ratio (H/W) [frac]

Required: True

Type:float
rec_cost_exp

Receiver cost scaling exponent

Required: True

Type:float
rec_height

Receiver height [m]

Required: True

Type:float
rec_hl_perm2

Receiver design heat loss [kW/m2]

Required: True

Type:float
rec_ref_area

Receiver reference area for cost scale

Required: True

Type:float
rec_ref_cost

Receiver reference cost [$]

Required: True

Type:float
sales_tax_frac

Percent of cost to which sales tax applies [%]

Required: True

Type:float
sales_tax_rate

Sales tax rate [%]

Required: True

Type:float
site_spec_cost

Site improvement cost [$/m2]

Required: True

Type:float
solar_resource_file

Solar weather data file

Constraints: LOCAL_FILE

Required: False

Type:str
tower_exp

Tower cost scaling exponent

Required: True

Type:float
tower_fixed_cost

Tower fixed cost [$]

Required: True

Type:float

Outputs Group

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

area_sf

Total reflective heliostat area [m^2]

Type:float
base_land_area

Land area occupied by heliostats [acre]

Type:float
cost_land_tot

Total land cost [$]

Type:float
cost_rec_tot

Total receiver cost [$]

Type:float
cost_sf_tot

Total heliostat field cost [$]

Type:float
cost_site_tot

Total site cost [$]

Type:float
cost_tower_tot

Total tower cost [$]

Type:float
flux_max_observed

Maximum observed flux at design [kW/m2]

Type:float
flux_table

Flux intensity table (flux(X) x (flux(y) x position) [frac]

Type:sequence[sequence]
h_tower_opt

Optimized tower height [m]

Type:float
heliostat_positions

Heliostat positions (x,y) [m]

Type:sequence[sequence]
land_area

Total land area [acre]

Type:float
number_heliostats

Number of heliostats

Type:float
opteff_table

Optical efficiency (azi, zen, eff x nsim)

Type:sequence[sequence]
rec_aspect_opt

Optimized receiver aspect ratio [-]

Type:float
rec_height_opt

Optimized receiver height [m]

Type:float