MhkWave¶
Wrapper for SAM Simulation Core model: cmod_mhk_wave.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:
- device_rated_power
- number_devices
- system_capacity
- wave_power_matrix
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.
MhkWave model description
Wave marine hydrokinetic system
-
PySAM.MhkWave.
default
(config) → MhkWave¶ Use default attributes config options:
- “MEwaveLCOECalculator”
- “MEwaveNone”
-
PySAM.MhkWave.
from_existing
(data, optional config) → MhkWave¶ Share underlying data with an existing PySAM class. If config provided, default attributes are loaded otherwise.
-
PySAM.MhkWave.
new
() → MhkWave¶
-
PySAM.MhkWave.
wrap
(ssc_data_t) → MhkWave¶ Use existing PySSC data
Warning
Do not call PySSC.data_free on the ssc_data_t provided to
wrap
Functions¶
-
class
PySAM.MhkWave.
MhkWave
¶ 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 = { 'MHKWave': { 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 = { 'MHKWave': { 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.
-
MHKWave Group¶
-
class
PySAM.MhkWave.MhkWave.
MHKWave
¶ -
assign
(dict) → None¶ Assign attributes from dictionary, overwriting but not removing values
MHKWave_vals = { var: val, ...}
-
export
() → dict¶ Export attributes into dictionary
-
replace
(dict) → None¶ Replace attributes from dictionary, unassigning values not present in input dict
MHKWave_vals = { var: val, ...}
-
balance_of_system_cost_total
¶ BOS costs [$]
Required: If not provided, assumed to be 1
Type: float
-
day
¶ Day [dy]
Info: 1-365
Type: sequence
-
device_costs_total
¶ Device costs [$]
Required: If not provided, assumed to be 1
Type: float
-
device_rated_power
¶ Rated capacity of device [kW]
Required: True
- Changes to this variable may require updating the values of the following:
- number_devices
- system_capacity
- This variable may need to be updated if the values of the following have changed:
- wave_power_matrix
Type: float
-
energy_period
¶ Wave period time series data [s]
Required: False
Type: sequence
-
financial_cost_total
¶ Financial costs [$]
Required: If not provided, assumed to be 1
Type: float
-
fixed_charge_rate
¶ FCR from LCOE Cost page
Required: If not provided, assumed to be 1
Type: float
-
hour
¶ Hour [hr]
Info: 0-23
Type: sequence
-
loss_additional
¶ Additional losses [%]
Required: True
Type: float
-
loss_array_spacing
¶ Array spacing loss [%]
Required: True
Type: float
-
loss_downtime
¶ Array/WEC downtime loss [%]
Required: True
Type: float
-
loss_resource_overprediction
¶ Resource overprediction loss [%]
Required: True
Type: float
-
loss_transmission
¶ Transmission losses [%]
Required: True
Type: float
-
minute
¶ Minute [min]
Info: 0-59
Type: sequence
-
month
¶ Month [mn]
Info: 1-12
Type: sequence
-
number_devices
¶ Number of wave devices in the system
Constraints: INTEGER
Required: If not provided, assumed to be 1
- Changes to this variable may require updating the values of the following:
- system_capacity
- This variable may need to be updated if the values of the following have changed:
- device_rated_power
- wave_power_matrix
Type: float
-
number_hours
¶ Number of hours in wave time series
Required: False
Type: float
-
number_records
¶ Number of records in wave time series
Required: False
Type: float
-
significant_wave_height
¶ Significant wave height time series data [m]
Required: False
Type: sequence
-
system_capacity
¶ System Nameplate Capacity [kW]
Required: If not provided, assumed to be 0
- This variable may need to be updated if the values of the following have changed:
- device_rated_power
- number_devices
- wave_power_matrix
Type: float
-
total_operating_cost
¶ O&M costs [$]
Required: If not provided, assumed to be 1
Type: float
-
wave_power_matrix
¶ Wave Power Matrix
Required: True
- Changes to this variable may require updating the values of the following:
- device_rated_power
- number_devices
- system_capacity
Type: sequence[sequence]
-
wave_resource_data
¶ Array input of wave_resource_matrix (JPD) or time series (significant_wave_height and energy_period) data
Required: False
Type: dict
-
wave_resource_matrix
¶ Frequency distribution of wave resource as a function of Hs and Te
Required: False
Type: sequence[sequence]
-
wave_resource_model_choice
¶ Hourly or JPD wave resource data [0/1]
Constraints: INTEGER
Required: If not provided, assumed to be 0
Type: float
-
year
¶ Year [yr]
Type: sequence
-
Outputs Group¶
-
class
PySAM.MhkWave.MhkWave.
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, ...}
-
annual_energy
¶ Annual energy production of array [kWh]
Type: float
-
annual_energy_distribution
¶ Annual energy production as function of Hs and Te
Type: sequence[sequence]
-
annual_energy_distribution_time
¶ Annual energy production as function of Time
Type: sequence[sequence]
-
capacity_factor
¶ Capacity Factor [%]
Type: float
-
device_average_power
¶ Average power production of a single device [kW]
Type: float
-
energy_period_index_mat
¶ Wave period index locations for time series [s]
Type: sequence
-
gen
¶ System power generated [kW]
Type: sequence
-
hourly_energy
¶ Hourly energy production of device [kWh]
Type: sequence
-
numberHours
¶ Number of Hours
Type: float
-
numberRecords
¶ Number of Records
Type: float
-
sig_wave_height_index_mat
¶ Wave height index locations for time series [m]
Type: sequence
-
total_bos_cost_kwh
¶ Balance of system costs per unit annual energy [$/kWh]
Type: float
-
total_bos_cost_lcoe
¶ BOS cost [%]
Type: float
-
total_capital_cost_kwh
¶ Capital costs per unit annual energy [$/kWh]
Type: float
-
total_capital_cost_lcoe
¶ Capital cost as percentage of overall LCOE [%]
Type: float
-
total_device_cost_kwh
¶ Device costs per unit annual energy [$/kWh]
Type: float
-
total_device_cost_lcoe
¶ Device cost [%]
Type: float
-
total_financial_cost_kwh
¶ Financial costs per unit annual energy [$/kWh]
Type: float
-
total_financial_cost_lcoe
¶ Financial cost [%]
Type: float
-
total_om_cost_kwh
¶ O&M costs per unit annual energy [$/kWh]
Type: float
-
total_om_cost_lcoe
¶ O&M cost (annual) [%]
Type: float
-
wave_power_end_height
¶ Wave height at which last non-zero WEC power output occurs (m)
Type: float
-
wave_power_end_period
¶ Wave period at which last non-zero WEC power output occurs (s)
Type: float
-
wave_power_index_mat
¶ Wave power for time series [kW]
Type: sequence
-
wave_power_start_height
¶ Wave height at which first non-zero WEC power output occurs (m)
Type: float
-
wave_power_start_period
¶ Wave period at which first non-zero WEC power output occurs (s)
Type: float
-
wave_resource_end_height
¶ Wave height at which last non-zero wave resource value occurs (m)
Type: float
-
wave_resource_end_period
¶ Wave period at which last non-zero wave resource value occurs (s)
Type: float
-
wave_resource_start_height
¶ Wave height at which first non-zero wave resource value occurs (m)
Type: float
-
wave_resource_start_period
¶ Wave period at which first non-zero wave resource value occurs (s)
Type: float
-