Outputs

Financial outputs

REopt.add_financial_resultsFunction
add_financial_results(m::JuMP.AbstractModel, p::REoptInputs, d::Dict; _n="")

Adds the Financial results to the dictionary passed back from run_reopt using the solved model m and the REoptInputs for node _n. Note: the node number is an empty string if evaluating a single Site.

Financial results:

  • lcc Optimal lifecycle cost
  • lifecycle_generation_tech_capital_costs LCC component. Net capital costs for all generation technologies, in present value, including replacement costs and incentives. This value does not include offgridothercapital_costs.
  • lifecycle_storage_capital_costs LCC component. Net capital costs for all storage technologies, in present value, including replacement costs and incentives. This value does not include offgridothercapital_costs.
  • lifecycle_om_costs_after_tax LCC component. Present value of all O&M costs, after tax.
  • lifecycle_fuel_costs_after_tax LCC component. Present value of all fuel costs over the analysis period, after tax.
  • lifecycle_chp_standby_cost_after_tax LCC component. Present value of all CHP standby charges, after tax.
  • lifecycle_elecbill_after_tax LCC component. Present value of all electric utility charges, after tax.
  • lifecycle_production_incentive_after_tax LCC component. Present value of all production-based incentives, after tax.
  • lifecycle_offgrid_other_annual_costs_after_tax LCC component. Present value of offgridotherannual_costs over the analysis period, after tax.
  • lifecycle_offgrid_other_capital_costs LCC component. Equal to offgridothercapital_costs with straight line depreciation applied over analysis period. The depreciation expense is assumed to reduce the owner's taxable income.
  • lifecycle_outage_cost LCC component. Expected outage cost.
  • lifecycle_MG_upgrade_and_fuel_cost LCC component. Cost to upgrade generation and storage technologies to be included in microgrid, plus present value of microgrid fuel costs.
  • lifecycle_om_costs_before_tax Present value of all O&M costs, before tax.
  • year_one_om_costs_before_tax Year one O&M costs, before tax.
  • year_one_om_costs_after_tax Year one O&M costs, after tax.
  • lifecycle_capital_costs_plus_om_after_tax Capital cost for all technologies plus present value of operations and maintenance over anlaysis period. This value does not include offgridothercapital_costs.
  • lifecycle_capital_costs Net capital costs for all technologies, in present value, including replacement costs and incentives. This value does not include offgridothercapital_costs.
  • initial_capital_costs Up-front capital costs for all technologies, in present value, excluding replacement costs and incentives. This value does not include offgridothercapital_costs.
  • initial_capital_costs_after_incentives Up-front capital costs for all technologies, in present value, excluding replacement costs, and accounting for incentives. This value does not include offgridothercapital_costs.
  • replacements_future_cost_after_tax Future cost of replacing storage and/or generator systems, after tax.
  • replacements_present_cost_after_tax Present value cost of replacing storage and/or generator systems, after tax.
  • om_and_replacement_present_cost_after_tax Present value of all O&M and replacement costs, after tax.
  • developer_om_and_replacement_present_cost_after_tax Present value of all O&M and replacement costs incurred by developer, after tax.
  • offgrid_microgrid_lcoe_dollars_per_kwh Levelized cost of electricity for modeled off-grid system.
source

ElectricTariff outputs

REopt.add_electric_tariff_resultsFunction
add_electric_tariff_results(m::JuMP.AbstractModel, p::REoptInputs, d::Dict; _n="")

Adds the ElectricTariff results to the dictionary passed back from run_reopt using the solved model m and the REoptInputs for node _n. Note: the node number is an empty string if evaluating a single Site.

ElectricTariff results:

  • lifecycle_energy_cost_after_tax lifecycle cost of energy from the grid in present value, after tax
  • year_one_energy_cost_before_tax cost of energy from the grid over the first year, before considering tax benefits
  • lifecycle_demand_cost_after_tax lifecycle cost of power from the grid in present value, after tax
  • year_one_demand_cost_before_tax cost of power from the grid over the first year, before considering tax benefits
  • lifecycle_fixed_cost_after_tax lifecycle fixed cost in present value, after tax
  • year_one_fixed_cost_before_tax fixed cost over the first year, before considering tax benefits
  • lifecycle_min_charge_adder_after_tax lifecycle minimum charge in present value, after tax
  • year_one_min_charge_adder_before_tax minimum charge over the first year, before considering tax benefits
  • year_one_bill_before_tax sum of year_one_energy_cost_before_tax, year_one_demand_cost_before_tax, year_one_fixed_cost_before_tax, year_one_min_charge_adder_before_tax, and year_one_coincident_peak_cost_before_tax
  • lifecycle_export_benefit_after_tax lifecycle export credits in present value, after tax
  • year_one_export_benefit_before_tax export credits over the first year, before considering tax benefits
  • lifecycle_coincident_peak_cost_after_tax lifecycle coincident peak charge in present value, after tax
  • year_one_coincident_peak_cost_before_tax coincident peak charge over the first year
source

ElectricLoad outputs

REopt.add_electric_load_resultsFunction
add_electric_load_results(m::JuMP.AbstractModel, p::REoptInputs, d::Dict; _n="")

Adds the ElectricLoad results to the dictionary passed back from run_reopt using the solved model m and the REoptInputs for node _n. Note: the node number is an empty string if evaluating a single Site.

ElectricLoad results:

  • load_series_kw vector of site load in every time step
  • critical_load_series_kw vector of site critical load in every time step
  • annual_calculated_kwh sum of the load_series_kw
  • offgrid_load_met_series_kw vector of electric load met by generation techs, for off-grid scenarios only
  • offgrid_load_met_pct percentage of total electric load met on an annual basis, for off-grid scenarios only
  • offgrid_annual_oper_res_required_series_kwh , total operating reserves required on an annual basis, for off-grid scenarios only
  • offgrid_annual_oper_res_provided_series_kwh , total operating reserves provided on an annual basis, for off-grid scenarios only
source

ElectricUtility outputs

REopt.add_electric_utility_resultsFunction
add_electric_utility_results(m::JuMP.AbstractModel, p::REoptInputs, d::Dict; _n="")

Adds the ElectricUtility results to the dictionary passed back from run_reopt using the solved model m and the REoptInputs for node _n. Note: the node number is an empty string if evaluating a single Site.

ElectricUtility results:

  • year_one_energy_supplied_kwh Total energy supplied from the grid in year one.
  • year_one_to_load_series_kw Vector of powers drawn from the grid to serve load in year one.
  • year_one_to_battery_series_kw Vector of powers drawn from the grid to charge the battery in year one.
source

PV outputs

REopt.add_pv_resultsFunction
add_pv_results(m::JuMP.AbstractModel, p::REoptInputs, d::Dict; _n="")

Adds the PV results to the dictionary passed back from run_reopt using the solved model m and the REoptInputs for node _n. Note: the node number is an empty string if evaluating a single Site.

Warn

The key(s) used to access PV outputs in the results dictionary is determined by the PV.name value to allow for modeling multiple PV options. (The default PV.name is "PV".)

PV results:

  • size_kw Optimal PV capacity
  • lifecycle_om_cost_after_tax Lifecycle operations and maintenance cost in present value, after tax
  • year_one_energy_produced_kwh Energy produced over the first year
  • average_annual_energy_produced_kwh Average annual energy produced when accounting for degradation
  • lcoe_per_kwh Levelized Cost of Energy produced by the PV system
  • year_one_to_load_series_kw Vector of power used to meet load over the first year
  • year_one_to_battery_series_kw Vector of power used to charge the battery over the first year
  • year_one_to_grid_series_kw Vector of power exported to the grid over the first year
  • year_one_curtailed_production_series_kw Vector of power curtailed over the first year
  • average_annual_energy_exported_kwh Average annual energy exported to the grid
source

Wind outputs

REopt.add_wind_resultsFunction
add_wind_results(m::JuMP.AbstractModel, p::REoptInputs, d::Dict; _n="")

Adds the Wind results to the dictionary passed back from run_reopt using the solved model m and the REoptInputs for node _n. Note: the node number is an empty string if evaluating a single Site.

Wind results:

  • size_kw Optimal Wind capacity
  • lifecycle_om_cost_after_tax Lifecycle operations and maintenance cost in present value, after tax
  • year_one_om_cost_before_tax Operations and maintenance cost in the first year, before tax benefits
  • year_one_to_battery_series_kw Vector of power used to charge the battery over the first year
  • year_one_to_grid_series_kw Vector of power exported to the grid over the first year
  • average_annual_energy_exported_kwh Average annual energy exported to the grid
  • year_one_to_load_series_kw Vector of power used to meet load over the first year
  • year_one_energy_produced_kwh Energy produced over the first year
  • average_annual_energy_produced_kwh Average annual energy produced when accounting for degradation
  • lcoe_per_kwh Levelized Cost of Energy produced by the PV system
  • year_one_curtailed_production_series_kw Vector of power curtailed over the first year
source

ElectricStorage outputs

REopt.add_electric_storage_resultsFunction
add_electric_storage_results(m::JuMP.AbstractModel, p::REoptInputs, d::Dict; _n="")

Adds the Storage results to the dictionary passed back from run_reopt using the solved model m and the REoptInputs for node _n. Note: the node number is an empty string if evaluating a single Site.

Storage results:

  • size_kw Optimal inverter capacity
  • size_kwh Optimal storage capacity
  • year_one_soc_series_pct Vector of normalized (0-1) state of charge values over the first year
  • year_one_to_load_series_kw Vector of power used to meet load over the first year
  • year_one_to_grid_series_kw Vector of power exported to the grid over the first year
  • initial_capital_cost Upfront capital cost for storage and inverter.
source

HotThermalStorage outputs

REopt.add_hot_storage_resultsFunction
add_hot_storage_results(m::JuMP.AbstractModel, p::REoptInputs, d::Dict; _n="")

Adds the Storage results to the dictionary passed back from run_reopt using the solved model m and the REoptInputs for node _n. Note: the node number is an empty string if evaluating a single Site.

Storage results:

  • size_gal Optimal TES capacity, by volume [gal]
  • year_one_soc_series_pct Vector of normalized (0-1) state of charge values over the first year [-]
  • year_one_to_load_series_mmbtu_per_hour Vector of power used to meet load over the first year [MMBTU/hr]
source

ColdThermalStorage outputs

REopt.add_cold_storage_resultsFunction
add_cold_storage_results(m::JuMP.AbstractModel, p::REoptInputs, d::Dict; _n="")

Adds the Storage results to the dictionary passed back from run_reopt using the solved model m and the REoptInputs for node _n. Note: the node number is an empty string if evaluating a single Site.

Storage results:

  • size_gal Optimal TES capacity, by volume [gal]
  • year_one_soc_series_pct Vector of normalized (0-1) state of charge values over the first year [-]
  • year_one_to_load_series_ton Vector of power used to meet load over the first year [ton]
source

Generator outputs

REopt.add_generator_resultsFunction
add_generator_results(m::JuMP.AbstractModel, p::REoptInputs, d::Dict; _n="")

Adds the Generator results to the dictionary passed back from run_reopt using the solved model m and the REoptInputs for node _n. Note: the node number is an empty string if evaluating a single Site.

Generator results:

  • size_kw Optimal generator capacity
  • lifecycle_fixed_om_cost_after_tax Lifecycle fixed operations and maintenance cost in present value, after tax
  • year_one_fixed_om_cost__before_tax fixed operations and maintenance cost over the first year, before considering tax benefits
  • lifecycle_variable_om_cost_after_tax Lifecycle variable operations and maintenance cost in present value, after tax
  • year_one_variable_om_cost_before_tax variable operations and maintenance cost over the first year, before considering tax benefits
  • lifecycle_fuel_cost_after_tax Lifecycle fuel cost in present value, after tax
  • year_one_fuel_cost_before_tax Fuel cost over the first year, before considering tax benefits
  • average_annual_fuel_used_gal Gallons of fuel used in each year
  • year_one_to_battery_series_kw Vector of power sent to battery in year one
  • year_one_to_grid_series_kw Vector of power sent to grid in year one
  • year_one_to_load_series_kw Vector of power sent to load in year one
  • year_one_energy_produced_kwh Total energy produced in year one
  • average_annual_energy_produced_kwh Average annual energy produced over analysis period
source

CHP outputs

REopt.add_chp_resultsFunction
add_chp_results(m::JuMP.AbstractModel, p::REoptInputs, d::Dict; _n="")

Adds the CHP results to the dictionary passed back from run_reopt using the solved model m and the REoptInputs for node _n. Note: the node number is an empty string if evaluating a single Site.

CHP results:

  • size_kw Power capacity size of the CHP system [kW]
  • size_supplemental_firing_kw Power capacity of CHP supplementary firing system [kW]
  • year_one_fuel_used_mmbtu Fuel consumed in year one [MMBtu]
  • year_one_electric_energy_produced_kwh Electric energy produced in year one [kWh]
  • year_one_thermal_energy_produced_mmbtu Thermal energy produced in year one [MMBtu]
  • year_one_electric_production_series_kw Electric power production time-series array [kW]
  • year_one_to_grid_series_kw Electric power exported time-series array [kW]
  • year_one_to_battery_series_kw Electric power to charge the battery storage time-series array [kW]
  • year_one_to_load_series_kw Electric power to serve the electric load time-series array [kW]
  • year_one_thermal_to_tes_series_mmbtu_per_hour Thermal power to TES time-series array [MMBtu/hr]
  • year_one_thermal_to_waste_series_mmbtu_per_hour Thermal power wasted/unused/vented time-series array [MMBtu/hr]
  • year_one_thermal_to_load_series_mmbtu_per_hour Thermal power to serve the heating load time-series array [MMBtu/hr]
  • year_one_chp_fuel_cost_before_tax Fuel cost from fuel consumed by the CHP system [$]
  • lifecycle_chp_fuel_cost_after_tax Fuel cost from fuel consumed by the CHP system, after tax [$]
  • year_one_chp_standby_cost_before_tax CHP standby charges in year one [$]
source

Uncertain Outages outputs

REopt.add_outage_resultsFunction
add_outage_results(m::JuMP.AbstractModel, p::REoptInputs, d::Dict)

Adds the Outages results to the dictionary passed back from run_reopt using the solved model m and the REoptInputs. Only added to results when multiple outages are modeled via the ElectricUtility.outage_durations input.

Note

When modeling PV the name of the PV system is used for the output keys to allow for modeling multiple PV systems. The default PV name is PV.

Warn

The Outage results can be very large when many outages are modeled and can take a long time to generate.

Outages results:

  • expected_outage_cost The expected outage cost over the random outages modeled.
  • max_outage_cost_per_outage_duration_series The maximum outage cost in every outage duration modeled.
  • unserved_load_series The amount of unserved load in each outage and each time step.
  • unserved_load_per_outage_series The total unserved load in each outage.
  • mg_storage_upgrade_cost The cost to include the storage system in the microgrid.
  • storage_upgraded Boolean that is true if it is cost optimal to include the storage system in the microgrid.

= discharge_from_storage_series Array of storage power discharged in every outage modeled.

  • PVmg_kw Optimal microgrid PV capacity. Note that the name PV can change based on user provided PV.name.
  • mg_PV_upgrade_cost The cost to include the PV system in the microgrid.
  • mgPV_to_storage_series Array of PV power sent to the battery in every outage modeled.
  • mgPV_curtailed_series Array of PV curtailed in every outage modeled.
  • mgPV_to_load_series Array of PV power used to meet load in every outage modeled.
  • Generatormg_kw Optimal microgrid Generator capacity. Note that the name Generator can change based on user provided Generator.name.
  • mg_Generator_upgrade_cost The cost to include the Generator system in the microgrid.
  • mgGenerator_to_storage_series Array of Generator power sent to the battery in every outage modeled.
  • mgGenerator_curtailed_series Array of Generator curtailed in every outage modeled.
  • mgGenerator_to_load_series Array of Generator power used to meet load in every outage modeled.
  • mg_Generator_fuel_used Array of Generator fuel used in every outage modeled.
Warn

The output keys for "Outages" are subject to change.

source