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:
- balance_of_system_cost_total
- device_costs_total
- device_rated_power
- financial_cost_total
- number_devices
- system_capacity
- total_operating_cost
- 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”
-
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
-
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
() → None¶ Assign attributes from dictionary
MHKWave_vals = { var: val, ...}
-
export
() → dict¶ Export attributes into dictionary
-
balance_of_system_cost_total
¶ BOS costs [$]
Required: If not provided, assumed to be 1
- This variable may need to be updated if the values of the following have changed:
- device_costs_total
- device_rated_power
- number_devices
- system_capacity
- wave_power_matrix
Type: float
-
device_costs_total
¶ Device costs [$]
Required: If not provided, assumed to be 1
- Changes to this variable may require updating the values of the following:
- balance_of_system_cost_total
- financial_cost_total
- This variable may need to be updated if the values of the following have changed:
- device_rated_power
- number_devices
- system_capacity
- wave_power_matrix
Type: float
-
device_rated_power
¶ Rated capacity of device [kW]
Required: True
- Changes to this variable may require updating the values of the following:
- balance_of_system_cost_total
- device_costs_total
- financial_cost_total
- number_devices
- system_capacity
- total_operating_cost
- This variable may need to be updated if the values of the following have changed:
- wave_power_matrix
Type: float
-
financial_cost_total
¶ Financial costs [$]
Required: If not provided, assumed to be 1
- This variable may need to be updated if the values of the following have changed:
- device_costs_total
- device_rated_power
- number_devices
- system_capacity
- wave_power_matrix
Type: float
-
fixed_charge_rate
¶ FCR from LCOE Cost page
Required: If not provided, assumed to be 1
Type: float
-
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
-
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:
- balance_of_system_cost_total
- device_costs_total
- financial_cost_total
- system_capacity
- total_operating_cost
- This variable may need to be updated if the values of the following have changed:
- device_rated_power
- wave_power_matrix
Type: float
-
system_capacity
¶ System Nameplate Capacity [kW]
Required: If not provided, assumed to be 0
- Changes to this variable may require updating the values of the following:
- balance_of_system_cost_total
- device_costs_total
- financial_cost_total
- total_operating_cost
- 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
- This variable may need to be updated if the values of the following have changed:
- device_rated_power
- number_devices
- system_capacity
- wave_power_matrix
Type: float
-
wave_power_matrix
¶ Wave Power Matrix
Required: True
- Changes to this variable may require updating the values of the following:
- balance_of_system_cost_total
- device_costs_total
- device_rated_power
- financial_cost_total
- number_devices
- system_capacity
- total_operating_cost
Type: sequence[sequence]
-
wave_resource_matrix
¶ Frequency distribution of wave resource as a function of Hs and Te
Required: True
Type: sequence[sequence]
-
Outputs Group¶
-
class
PySAM.MhkWave.MhkWave.
Outputs
¶ -
assign
() → None¶ Assign attributes from dictionary
Outputs_vals = { var: val, ...}
-
export
() → dict¶ Export attributes into dictionary
-
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]
-
capacity_factor
¶ Capacity Factor [%]
Type: float
-
device_average_power
¶ Average power production of a single device [kW]
Type: float
-
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_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
-