Thermalrate

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

  • thermal_buy_rate
  • thermal_buy_rate_flat
  • thermal_buy_rate_option
  • thermal_sell_rate
  • thermal_sell_rate_flat
  • thermal_sell_rate_option

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.

Thermalrate model description

Thermal flat rate structure net revenue calculator

PySAM.Thermalrate.default(config) → Thermalrate

Use default attributes config options:

  • “FuelCellCommercial”
  • “FuelCellSingleOwner”
PySAM.Thermalrate.from_existing(data, optional config) → Thermalrate

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

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

Use existing PySSC data

Warning

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

Functions

class PySAM.Thermalrate.Thermalrate

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

ThermalRate Group

class PySAM.Thermalrate.Thermalrate.ThermalRate
assign(dict) → None

Assign attributes from dictionary, overwriting but not removing values

ThermalRate_vals = { var: val, ...}

export() → dict

Export attributes into dictionary

replace(dict) → None

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

ThermalRate_vals = { var: val, ...}

en_thermal_rates

Optionally enable/disable thermal_rate [years]

Constraints: INTEGER,MIN=0,MAX=1

Type:float
fuelcell_power_thermal

Fuel cell power generated [kW-t]

Required: True

Type:sequence
thermal_buy_rate

Thermal buy rate [$/kW-t]

Required: If not provided, assumed to be 0

This variable may need to be updated if the values of the following have changed:
  • thermal_buy_rate_flat
  • thermal_buy_rate_option
  • thermal_sell_rate_flat
  • thermal_sell_rate_option
Type:sequence
thermal_buy_rate_flat

Thermal buy rate flat [$/kW-t]

Required: If not provided, assumed to be 0

Changes to this variable may require updating the values of the following:
  • thermal_buy_rate
  • thermal_sell_rate
Type:float
thermal_buy_rate_option

Thermal buy rate option [0/1]

Options: 0=flat,1=timestep

Constraints: INTEGER,MIN=0,MAX=1

Required: If not provided, assumed to be 0

Changes to this variable may require updating the values of the following:
  • thermal_buy_rate
  • thermal_sell_rate
Type:float
thermal_degradation

Annual energy degradation [%]

Required: If not provided, assumed to be 0

Type:sequence
thermal_load

Thermal load (year 1) [kW-t]

Type:sequence
thermal_load_escalation

Annual load escalation [%/year]

Required: If not provided, assumed to be 0

Type:sequence
thermal_rate_escalation

Annual thermal rate escalation [%/year]

Required: If not provided, assumed to be 0

Type:sequence
thermal_sell_rate

Thermal sell rate [$/kW-t]

Required: If not provided, assumed to be 0

This variable may need to be updated if the values of the following have changed:
  • thermal_buy_rate_flat
  • thermal_buy_rate_option
  • thermal_sell_rate_flat
  • thermal_sell_rate_option
Type:sequence
thermal_sell_rate_flat

Thermal sell rate flat [$/kW-t]

Required: If not provided, assumed to be 0

Changes to this variable may require updating the values of the following:
  • thermal_buy_rate
  • thermal_sell_rate
Type:float
thermal_sell_rate_option

Thermal sell rate option [0/1]

Options: 0=flat,1=timestep

Constraints: INTEGER,MIN=0,MAX=1

Required: If not provided, assumed to be 0

Changes to this variable may require updating the values of the following:
  • thermal_buy_rate
  • thermal_sell_rate
Type:float

Lifetime Group

class PySAM.Thermalrate.Thermalrate.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

Number of years in analysis [years]

Constraints: INTEGER,POSITIVE

Required: True

Type:float
inflation_rate

Inflation rate [%]

Constraints: MIN=-99

Required: True

Type:float
system_use_lifetime_output

Lifetime hourly system outputs [0/1]

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

Constraints: INTEGER,MIN=0,MAX=1

Required: True

Type:float

Outputs Group

class PySAM.Thermalrate.Thermalrate.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, ...}

thermal_cost_with_system_year1

Thermal cost with sytem (year 1) [$]

Type:float
thermal_cost_without_system_year1

Thermal cost without system (year 1) [$]

Type:float
thermal_load_year1

Thermal load (year 1) [$]

Type:float
thermal_revenue_with_system

Thermal revenue with system [$]

Type:sequence
thermal_revenue_without_system

Thermal revenue without system [$]

Type:sequence
thermal_savings_year1

Thermal savings (year 1) [$]

Type:float