MhkWave

Wave marine hydrokinetic system

PySAM.MhkWave.default(config) → MhkWave

Load defaults for the configuration config. Available configurations are:

  • “MEwaveBatterySingleOwner”
  • “MEwaveLCOECalculator”
  • “MEwaveNone”
  • “MEwaveSingleOwner”

Note

Some inputs do not have default values and may be assigned a value from the variable’s Required attribute. See variable attribute descriptions below.

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

Share data with an existing PySAM class. If optional config is a valid configuration name, load the module’s defaults for that configuration.

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

Load data from a PySSC object.

Warning

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

MhkWave is a wrapper for the SSC compute module cmod_mhk_wave.cpp

Interdependent Variables

The variables listed below are interdependent with other variables. If you change the value of one of these variables, you may need to change values of other variables. The SAM user interface manages these interdependent variables, but in PySAM, it is up to you change the value of all interdependent variables so they are consistent. See Interdependent Variables for examples and details.

  • device_rated_power
  • number_devices
  • system_capacity
  • wave_power_matrix

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: False. Automatically set to 1 if not assigned explicitly or loaded from defaults.

Type:float
day

Day [dy]

Info: 1-365

Type:sequence
device_costs_total

Device costs [$]

Required: False. Automatically set to 1 if not assigned explicitly or loaded from defaults.

Type:float
device_rated_power

Rated capacity of device [kW]

Required: True

The value of the following variables depends on device_rated_power:

  • number_devices
  • system_capacity

The value of device_rated_power depends on the following variables:

  • wave_power_matrix
Type:float
energy_period

Wave period time series data [s]

Required: False for configuration with default inputs. May be required if a variable dependent on its value changes. Example: For the Detailed PV - Single Owner configuration, only Subarray 1 is enabled in the configuration defaults, so Subarray 2 inputs would not be required; if Subarray 2 is enabled, then Subarray 2 inputs is required.

Type:sequence
financial_cost_total

Financial costs [$]

Required: False. Automatically set to 1 if not assigned explicitly or loaded from defaults.

Type:float
fixed_charge_rate

FCR from LCOE Cost page

Required: False. Automatically set to 1 if not assigned explicitly or loaded from defaults.

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: False. Automatically set to 1 if not assigned explicitly or loaded from defaults.

The value of the following variables depends on number_devices:

  • system_capacity

The value of number_devices depends on the following variables:

  • device_rated_power
  • wave_power_matrix
Type:float
number_hours

Number of hours in wave time series

Required: False for configuration with default inputs. May be required if a variable dependent on its value changes. Example: For the Detailed PV - Single Owner configuration, only Subarray 1 is enabled in the configuration defaults, so Subarray 2 inputs would not be required; if Subarray 2 is enabled, then Subarray 2 inputs is required.

Type:float
number_records

Number of records in wave time series

Required: False for configuration with default inputs. May be required if a variable dependent on its value changes. Example: For the Detailed PV - Single Owner configuration, only Subarray 1 is enabled in the configuration defaults, so Subarray 2 inputs would not be required; if Subarray 2 is enabled, then Subarray 2 inputs is required.

Type:float
significant_wave_height

Significant wave height time series data [m]

Required: False for configuration with default inputs. May be required if a variable dependent on its value changes. Example: For the Detailed PV - Single Owner configuration, only Subarray 1 is enabled in the configuration defaults, so Subarray 2 inputs would not be required; if Subarray 2 is enabled, then Subarray 2 inputs is required.

Type:sequence
system_capacity

System Nameplate Capacity [kW]

Required: False. Automatically set to 0 if not assigned explicitly or loaded from defaults.

The value of system_capacity depends on the following variables:

  • device_rated_power
  • number_devices
  • wave_power_matrix
Type:float
total_operating_cost

O&M costs [$]

Required: False. Automatically set to 1 if not assigned explicitly or loaded from defaults.

Type:float
wave_power_matrix

Wave Power Matrix

Required: True

The value of the following variables depends on wave_power_matrix:

  • 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 for configuration with default inputs. May be required if a variable dependent on its value changes. Example: For the Detailed PV - Single Owner configuration, only Subarray 1 is enabled in the configuration defaults, so Subarray 2 inputs would not be required; if Subarray 2 is enabled, then Subarray 2 inputs is required.

Type:dict
wave_resource_matrix

Frequency distribution of wave resource as a function of Hs and Te

Required: False for configuration with default inputs. May be required if a variable dependent on its value changes. Example: For the Detailed PV - Single Owner configuration, only Subarray 1 is enabled in the configuration defaults, so Subarray 2 inputs would not be required; if Subarray 2 is enabled, then Subarray 2 inputs is required.

Type:sequence[sequence]
wave_resource_model_choice

Hourly or JPD wave resource data [0/1]

Constraints: INTEGER

Required: False. Automatically set to 0 if not assigned explicitly or loaded from defaults.

Type:float
year

Year [yr]

Type:sequence

Lifetime Group

class PySAM.MhkWave.MhkWave.Lifetime
assign(dict) → None

Assign attributes from dictionary, overwriting but not removing values.

Lifetime_vals = { var: val, ...}

export() → dict

Export attributes into dictionary.

replace(dict) → None

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

Lifetime_vals = { var: val, ...}

analysis_period

Lifetime analysis period [years]

Required: Required if system_use_lifetime_output=1

Type:float
generic_degradation

Annual AC degradation [%/year]

Required: Required if system_use_lifetime_output=1

Type:sequence
system_use_lifetime_output

Generic lifetime simulation [0/1]

Constraints: INTEGER,MIN=0,MAX=1

Required: False. Automatically set to 0 if not assigned explicitly or loaded from defaults.

Type:float

AdjustmentFactors Group

class PySAM.MhkWave.MhkWave.AdjustmentFactors
assign() → None

Assign attributes from dictionary

export() → Dict

Export attributes into dictionary

constant

float

Type:type
dc_constant

DC Constant loss adjustment [%]

dc_hourly

DC Hourly Adjustment Factors [%]

dc_periods

DC Period-based Adjustment Factors [%]

hourly

AC Hourly Adjustment Factors [%]

periods

AC Period-based Adjustment Factors [%]

sf_constant

DC Constant loss adjustment [%]

sf_hourly

DC Hourly Adjustment Factors [%]

sf_periods

DC Period-based Adjustment Factors [%]

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 [kWh]

Type:sequence[sequence]
annual_energy_distribution_time

Annual energy production as function of Time [kWh]

Type:sequence[sequence]
capacity_factor

Capacity factor [%]

Type:float
device_average_power

Average power production of a single device [kW]

Type:float
energy_hourly_kW

Power output of array [kW]

Type:sequence
energy_hourly_kWh

Energy production of array [kWh]

Type:sequence
energy_period_data

Energy period time series data [s]

Type:sequence
energy_period_index_mat

Wave period index locations for time series [s]

Type:sequence
gen

System power generated [kW]

Type:sequence
numberHours

Number of Hours

Type:float
numberRecords

Number of Records

Type:float
sig_wave_height_data

Significant wave height time series data [m]

Type:sequence
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_bos_cost_per_kw

Balance of Systems cost per kW [$/kW]

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_capital_cost_per_kw

Capital cost per kW [$/kW]

Type:float
total_device_cost_kwh

Device costs per unit annual energy [$/kWh]

Type:float
total_device_cost_lcoe

Device cost [%]

Type:float
total_device_cost_per_kw

Device cost per kW [$/kW]

Type:float
total_financial_cost_kwh

Financial costs per unit annual energy [$/kWh]

Type:float
total_financial_cost_lcoe

Financial cost [%]

Type:float
total_financial_cost_per_kw

Financial cost per kW [$/kW]

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
total_operations_cost_per_kw

O&M cost per kW [$/kW]

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