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

get_data_ptr() Pointer

Get ssc_data_t pointer

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) 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

AdjustmentFactors Group

class PySAM.AdjustmentFactors.AdjustmentFactors
assign() None

Assign attributes from dictionary

export() Dict

Export attributes into dictionary

constant

AC Constant loss adjustment [%]

dc_constant

DC Constant loss adjustment [%]

dc_en_hourly

Enable DC hourly-based adjustment factors [0/1]

dc_en_periods

Enable DC period-based adjustment factors [0/1]

dc_en_timeindex

Enable DC lfetime adjustment factors [0/1]

dc_hourly

DC Hourly Adjustment Factors [%]

dc_periods

DC Period-based Adjustment Factors [%]

dc_timeindex

DC Lifetime Adjustment Factors [%]

en_hourly

Enable AC hourly-based adjustment factors [0/1]

en_periods

Enable AC period-based adjustment factors [0/1]

en_timeindex

Enable AC lfetime adjustment factors [0/1]

hourly

AC Hourly Adjustment Factors [%]

periods

AC Period-based Adjustment Factors [%]

sf_constant

DC Constant loss adjustment [%]

sf_en_hourly

Enable SF hourly-based adjustment factors [0/1]

sf_en_periods

Enable SF period-based adjustment factors [0/1]

sf_en_timeindex

Enable SF lfetime adjustment factors [0/1]

sf_hourly

SF Hourly Adjustment Factors [%]

sf_periods

SF Period-based Adjustment Factors [%]

sf_timeindex

SF Lifetime Adjustment Factors [%]

timeindex

AC Lifetime Adjustment Factors [%]

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

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