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