Thirdpartyownership

Wrapper for SAM Simulation Core model: cmod_thirdpartyownership.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:

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.

Thirdpartyownership model description

Third party ownership with PPA or lease agreement financial model from host perspective

PySAM.Thirdpartyownership.default(config) → Thirdpartyownership

Use default attributes config options:

  • “FlatPlatePVThirdParty”
  • “GenericBatteryThirdParty”
  • “GenericSystemThirdParty”
  • “PVBatteryThirdParty”
  • “PVWattsBatteryThirdParty”
  • “PVWattsThirdParty”
PySAM.Thirdpartyownership.from_existing(data, optional config) → Thirdpartyownership

Share underlying data with an existing PySAM class. If config provided, default attributes are loaded otherwise.

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

Use existing PySSC data

Warning

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

Functions

class PySAM.Thirdpartyownership.Thirdpartyownership

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 = { 'Depreciation': { 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.

Depreciation Group

class PySAM.Thirdpartyownership.Thirdpartyownership.Depreciation
assign() → None

Assign attributes from dictionary

Depreciation_vals = { var: val, ...}

export() → dict

Export attributes into dictionary

depr_fed_custom

Federal custom depreciation [%/year]

Required: True if depr_fed_type=3

Type:sequence
depr_fed_sl_years

Federal depreciation straight-line Years [years]

Constraints: INTEGER,POSITIVE

Required: True if depr_fed_type=2

Type:float
depr_fed_type

Federal depreciation type

Options: 0=none,1=macrs_half_year,2=sl,3=custom

Constraints: INTEGER,MIN=0,MAX=3

Required: If not provided, assumed to be 0

Type:float
depr_sta_custom

State custom depreciation [%/year]

Required: True if depr_sta_type=3

Type:sequence
depr_sta_sl_years

State depreciation straight-line years [years]

Constraints: INTEGER,POSITIVE

Required: True if depr_sta_type=2

Type:float
depr_sta_type

State depreciation type

Options: 0=none,1=macrs_half_year,2=sl,3=custom

Constraints: INTEGER,MIN=0,MAX=3

Required: If not provided, assumed to be 0

Type:float

Financials Group

class PySAM.Thirdpartyownership.Thirdpartyownership.Financials
assign() → None

Assign attributes from dictionary

Financials_vals = { var: val, ...}

export() → dict

Export attributes into dictionary

analysis_period

Analyis period [years]

Constraints: INTEGER,MIN=0,MAX=50

Required: If not provided, assumed to be 30

Type:float
inflation_rate

Inflation rate [%]

Constraints: MIN=-99

Required: True

Type:float
real_discount_rate

Real discount rate [%]

Constraints: MIN=-99

Required: True

Type:float

FinancialThirdPartyOwnership Group

class PySAM.Thirdpartyownership.Thirdpartyownership.FinancialThirdPartyOwnership
assign() → None

Assign attributes from dictionary

FinancialThirdPartyOwnership_vals = { var: val, ...}

export() → dict

Export attributes into dictionary

lease_or_ppa

Lease or PPA agreement [0/1]

Options: 0=lease,1=ppa

Constraints: INTEGER,MIN=0,MAX=1

Required: If not provided, assumed to be 0

Type:float

Common Group

class PySAM.Thirdpartyownership.Thirdpartyownership.Common
assign() → None

Assign attributes from dictionary

Common_vals = { var: val, ...}

export() → dict

Export attributes into dictionary

annual_energy_value

Energy value [$]

Required: True

Type:sequence
gen

Power generated by renewable resource [kW]

Required: True

Type:sequence

AnnualOutput Group

class PySAM.Thirdpartyownership.Thirdpartyownership.AnnualOutput
assign() → None

Assign attributes from dictionary

AnnualOutput_vals = { var: val, ...}

export() → dict

Export attributes into dictionary

degradation

Annual degradation [%]

Required: True

Type:sequence
system_use_lifetime_output

Lifetime hourly system outputs [0/1]

Options: 0=hourly first year,1=hourly lifetime

Constraints: INTEGER,MIN=0

Required: True

Type:float

CashFlow Group

class PySAM.Thirdpartyownership.Thirdpartyownership.CashFlow
assign() → None

Assign attributes from dictionary

CashFlow_vals = { var: val, ...}

export() → dict

Export attributes into dictionary

lease_escalation

Monthly lease escalation [%/year]

Required: True if lease_or_ppa=0

Type:float
lease_price

Monthly lease price [$/month]

Required: True if lease_or_ppa=0

Type:float
ppa_escalation

Monthly lease escalation [%/year]

Required: True if lease_or_ppa=1

Type:float
ppa_price

Monthly lease price [$/month]

Required: True if lease_or_ppa=1

Type:float

ElectricityCost Group

class PySAM.Thirdpartyownership.Thirdpartyownership.ElectricityCost
assign() → None

Assign attributes from dictionary

ElectricityCost_vals = { var: val, ...}

export() → dict

Export attributes into dictionary

elec_cost_with_system

Energy value [$]

Required: True

Type:sequence
elec_cost_without_system

Energy value [$]

Required: True

Type:sequence

Outputs Group

class PySAM.Thirdpartyownership.Thirdpartyownership.Outputs
assign() → None

Assign attributes from dictionary

Outputs_vals = { var: val, ...}

export() → dict

Export attributes into dictionary

cf_after_tax_cash_flow

After-tax cash flow [$]

Type:sequence
cf_after_tax_net_equity_cost_flow

After-tax annual costs [$]

Type:sequence
cf_agreement_cost

Agreement cost [$]

Type:sequence
cf_cumulative_payback_with_expenses

Cumulative simple payback with expenses [$]

Type:sequence
cf_energy_net

Energy [kWh]

Type:sequence
cf_length

Agreement period

Type:float
cf_nte

Host indifference point by year [cents/kWh]

Type:sequence
cf_payback_with_expenses

Simple payback with expenses [$]

Type:sequence
lnte_nom

Host indifference point real levelized value [cents/kWh]

Type:float
lnte_real

Host indifference point nominal levelized value [cents/kWh]

Type:float
npv

Net present value [$]

Type:float
year1_nte

Host indifference point in Year 1 [cents/kWh]

Type:float