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
-