Variables

Variables are the outputs from calculating a scenario. They show the decisions taken to solve the optimization problem. When you calculate a scenario, you can choose which variables to output (see the varstosave argument of calculatescenario). NEMO will then save the selected variables in the scenario database. Each saved variable gets its own table with columns for its dimensions (labeled with NEMO's standard abbreviations - e.g., r for region), a value column (val), and a column indicating the date and time the scenario was solved (solvedtm).

Nodal vs. non-nodal variables

Many NEMO outputs have "nodal" and "non-nodal" variants. Nodal variables show results for regions, fuels, technologies, storage, and years involved in transmission modeling - i.e., for cases where capacity, demand, and supply are simulated in a nodal network. To enable transmission modeling, you must define several dimensions and parameters: nodes, transmission lines, TransmissionModelingEnabled, TransmissionCapacityToActivityUnit, NodalDistributionDemand, NodalDistributionStorageCapacity, and NodalDistributionTechnologyCapacity. Non-nodal variables show results for cases where transmission modeling is not enabled.

Activity

Annual nodal production

Total annual nodal production of a fuel, combining all technologies. Unit: region's energy unit.

Julia code

  • Variable in JuMP model: vproductionannualnodal[n,f,y]

Annual nodal use

Total annual nodal use of a fuel, combining all technologies. Unit: region's energy unit.

Julia code

  • Variable in JuMP model: vuseannualnodal[n,l,f,y]

Annual non-nodal production

Total annual non-nodal production of a fuel, combining all technologies. Unit: region's energy unit.

Julia code

  • Variable in JuMP model: vproductionannualnn[r,f,y]

Annual non-nodal use

Total annual non-nodal use of a fuel, combining all technologies. Unit: region's energy unit.

Julia code

  • Variable in JuMP model: vuseannualnn[r,f,y]

Annual production by technology

Total annual production of a fuel by a technology, combining nodal and non-nodal production. Unit: region's energy unit.

Julia code

  • Variable in JuMP model: vproductionbytechnologyannual[r,t,f,y]

Annual trade

Annual trade of a fuel from region r to region rr. Unit: region's energy unit.

Julia code

  • Variable in JuMP model: vtradeannual[r,rr,f,y]

Annual use by technology

Annual use of a fuel by a technology. Unit: region's energy unit.

Julia code

  • Variable in JuMP model: vusebytechnologyannual[r,t,f,y]

Nodal production

Total nodal production of a fuel in a time slice, combining all technologies. Unit: region's energy unit.

Julia code

  • Variable in JuMP model: vproductionnodal[n,l,f,y]

Nodal rate of activity

Amount of a technology's capacity in use in a time slice and node. NEMO multiplies the rate of activity by input activity ratios and output activity ratios to determine fuel use and production, respectively. Unit: region's energy unit / year.

Julia code

  • Variable in JuMP model: vrateofactivitynodal[n,l,t,m,y]

Nodal rate of production by technology

Rate of time-sliced nodal production of a fuel by a technology. Unit: region's energy unit / year.

Julia code

  • Variable in JuMP model: vrateofproductionbytechnologynodal[n,l,t,f,y]

Nodal rate of production

Rate of total nodal production of a fuel in a time slice, combining all technologies. Unit: region's energy unit / year.

Julia code

  • Variable in JuMP model: vrateofproductionnodal[n,l,f,y]

Nodal rate of total activity

Nodal rate of activity summed across modes of operation. Unit: region's energy unit / year.

Julia code

  • Variable in JuMP model: vrateoftotalactivitynodal[n,t,l,y]

Nodal rate of use by technology

Rate of time-sliced nodal use of a fuel by a technology. Unit: region's energy unit / year.

Julia code

  • Variable in JuMP model: vrateofusebytechnologynodal[n,l,t,f,y]

Nodal rate of use

Rate of total nodal use of a fuel in a time slice, combining all technologies. Unit: region's energy unit / year.

Julia code

  • Variable in JuMP model: vrateofusenodal[n,l,f,y]

Nodal use

Total nodal use of a fuel in a time slice, combining all technologies. Unit: region's energy unit.

Julia code

  • Variable in JuMP model: vusenodal[n,l,f,y]

Non-nodal production

Total non-nodal production of a fuel in a time slice, combining all technologies. Unit: region's energy unit.

Julia code

  • Variable in JuMP model: vproductionnn[r,l,f,y]

Non-nodal rate of production by technology by mode

Rate of time-sliced non-nodal production of a fuel by a technology operating in a mode. Unit: region's energy unit / year.

Julia code

  • Variable in JuMP model: vrateofproductionbytechnologybymodenn[r,l,t,m,f,y]

Non-nodal rate of production by technology

Rate of time-sliced non-nodal production of a fuel by a technology. Unit: region's energy unit / year.

Julia code

  • Variable in JuMP model: vrateofproductionbytechnologynn[r,l,t,f,y]

Non-nodal rate of production

Rate of total non-nodal production of a fuel in a time slice, combining all technologies. Unit: region's energy unit / year.

Julia code

  • Variable in JuMP model: vrateofproductionnn[r,l,f,y]

Non-nodal rate of use by technology by mode

Rate of time-sliced non-nodal use of a fuel by a technology operating in a mode. Unit: region's energy unit / year.

Julia code

  • Variable in JuMP model: vrateofusebytechnologybymodenn[r,l,t,m,f,y]

Non-nodal rate of use by technology

Rate of time-sliced non-nodal use of a fuel by a technology. Unit: region's energy unit / year.

Julia code

  • Variable in JuMP model: vrateofusebytechnologynn[r,l,t,f,y]

Non-nodal rate of use

Rate of total non-nodal use of a fuel in a time slice, combining all technologies. Unit: region's energy unit / year.

Julia code

  • Variable in JuMP model: vrateofusenn[r,l,f,y]

Non-nodal use

Total non-nodal use of a fuel in a time slice, combining all technologies. Unit: region's energy unit.

Julia code

  • Variable in JuMP model: vusenn[r,l,f,y]

Production by technology

Production of a fuel by a technology in a time slice, combining nodal and non-nodal production. Unit: region's energy unit.

Julia code

  • Variable in JuMP model: vproductionbytechnology[r,l,t,f,y]

Rate of activity

Amount of a technology's capacity in use in a time slice (considering both nodal and non-nodal activity). NEMO multiplies the rate of activity by input activity ratios and output activity ratios to determine fuel use and production, respectively. Unit: region's energy unit / year.

Julia code

  • Variable in JuMP model: vrateofactivity[r,l,t,m,y]

Rate of production

Rate of total production of a fuel in a time slice, combining all technologies and nodal and non-nodal production. Unit: region's energy unit / year.

Julia code

  • Variable in JuMP model: vrateofproduction[r,l,f,y]

Rate of total activity

Rate of activity summed across modes of operation. Unit: region's energy unit / year.

Julia code

  • Variable in JuMP model: vrateoftotalactivity[r,t,l,y]

Rate of use

Rate of total use of a fuel in a time slice, combining all technologies and nodal and non-nodal production. Unit: region's energy unit / year.

Julia code

  • Variable in JuMP model: vrateofuse[r,l,f,y]

Total technology annual activity by mode

Nominal energy produced by a technology in a year when operating in the specified mode. Nominal energy is calculated by multiplying dispatched capacity by the length of time it is dispatched. This variable combines nominal energy due to both nodal and non-nodal activity. Unit: region's energy unit.

Julia code

  • Variable in JuMP model: vtotalannualtechnologyactivitybymode[r,t,m,y]

Total technology annual activity

Nominal energy produced by a technology in a year. Nominal energy is calculated by multiplying dispatched capacity by the length of time it is dispatched. This variable combines nominal energy due to both nodal and non-nodal activity. Unit: region's energy unit.

Julia code

  • Variable in JuMP model: vtotaltechnologyannualactivity[r,t,y]

Total technology model period activity

Nominal energy produced by a technology during the modeling period (i.e., over all years). Nominal energy is calculated by multiplying dispatched capacity by the length of time it is dispatched. This variable combines nominal energy due to both nodal and non-nodal activity. Unit: region's energy unit.

Julia code

  • Variable in JuMP model: vtotaltechnologymodelperiodactivity[r,t]

Trade

Time-sliced trade of a fuel from region r to region rr. Unit: region's energy unit.

Julia code

  • Variable in JuMP model: vtrade[r,rr,l,f,y]

Use by technology

Use of a fuel by a technology in a time slice, combining nodal and non-nodal use. Unit: region's energy unit.

Julia code

  • Variable in JuMP model: vusebytechnology[r,l,t,f,y]

Costs

Capital investment

Undiscounted investment in new endogenously determined technology capacity. Unit: scenario's cost unit.

Julia code

  • Variable in JuMP model: vcapitalinvestment[r,t,y]

Capital investment storage

Undiscounted investment in new endogenously determined storage capacity. Unit: scenario's cost unit.

Julia code

  • Variable in JuMP model: vcapitalinvestmentstorage[r,s,y]

Capital investment transmission

Undiscounted investment in new endogenously determined transmission capacity. Unit: scenario's cost unit.

Julia code

  • Variable in JuMP model: vcapitalinvestmenttransmission[tr,y]

Discounted capital investment

Discounted investment in new endogenously determined technology capacity. NEMO discounts to the first modeled year using the region's discount rate. Unit: scenario's cost unit.

Julia code

  • Variable in JuMP model: vdiscountedcapitalinvestment[r,t,y]

Discounted capital investment storage

Discounted investment in new endogenously determined storage capacity. NEMO discounts to the first modeled year using the region's discount rate. Unit: scenario's cost unit.

Julia code

  • Variable in JuMP model: vdiscountedcapitalinvestmentstorage[r,s,y]

Discounted capital investment transmission

Discounted investment in new endogenously determined transmission capacity. NEMO discounts to the first modeled year using the region's discount rate. Unit: scenario's cost unit.

Julia code

  • Variable in JuMP model: vdiscountedcapitalinvestmenttransmission[tr,y]

Emission penalty by emission

Undiscounted cost of annual technology emissions. Unit: scenario's cost unit.

Julia code

  • Variable in JuMP model: vannualtechnologyemissionpenaltybyemission[r,t,e,y]

Emission penalty

Undiscounted total emission costs associated with a technology (i.e., summing across emissions). Unit: scenario's cost unit.

Julia code

  • Variable in JuMP model: vannualtechnologyemissionspenalty[r,t,y]

Discounted emission penalty

Discounted total emission costs associated with a technology (i.e., summing across emissions). NEMO discounts to the first modeled year using the region's discount rate. Unit: scenario's cost unit.

Julia code

  • Variable in JuMP model: vdiscountedtechnologyemissionspenalty[r,t,y]

Model period cost by region

Sum of all discounted costs in a region during the modeling period (i.e., over all years). Includes technology, storage, and transmission costs. Unit: scenario's cost unit.

Julia code

  • Variable in JuMP model: vmodelperiodcostbyregion[r]

Operating cost

Sum of fixed and variable operation and maintenance costs for a technology. Unit: scenario's cost unit.

Julia code

  • Variable in JuMP model: voperatingcost[r,t,y]

Discounted operating cost

Discounted operation and maintenance costs for a technology. NEMO discounts to the first modeled year using the region's discount rate. Unit: scenario's cost unit.

Julia code

  • Variable in JuMP model: vdiscountedoperatingcost[r,t,y]

Fixed operating cost

Fixed operation and maintenance costs for a technology. Unit: scenario's cost unit.

Julia code

  • Variable in JuMP model: vannualfixedoperatingcost[r,t,y]

Variable operating cost

Variable operation and maintenance costs for a technology. Unit: scenario's cost unit.

Julia code

  • Variable in JuMP model: vannualvariableoperatingcost[r,t,y]

Operating cost transmission

Sum of fixed and variable operation and maintenance costs for a transmission line. Unit: scenario's cost unit.

Julia code

  • Variable in JuMP model: voperatingcosttransmission[tr,y]

Discounted operating cost transmission

Discounted operation and maintenance costs for a transmission line. NEMO discounts to the first modeled year using the region's discount rate. Unit: scenario's cost unit.

Julia code

  • Variable in JuMP model: vdiscountedoperatingcosttransmission[tr,y]

Salvage value

Undiscounted residual value of capital investment remaining at the end of the modeling period. The DepreciationMethod parameter determines the approach used to calculate salvage value. Unit: scenario's cost unit.

Julia code

  • Variable in JuMP model: vsalvagevalue[r,t,y]

Salvage value storage

Undiscounted residual value of capital investment storage remaining at the end of the modeling period. The DepreciationMethod parameter determines the approach used to calculate salvage value. Unit: scenario's cost unit.

Julia code

  • Variable in JuMP model: vsalvagevaluestorage[r,s,y]

Salvage value transmission

Undiscounted residual value of capital investment transmission remaining at the end of the modeling period. The DepreciationMethod parameter determines the approach used to calculate salvage value. Unit: scenario's cost unit.

Julia code

  • Variable in JuMP model: vsalvagevaluetransmission[tr,y]

Discounted salvage value

Discounted residual value of capital investment remaining at the end of the modeling period. NEMO discounts to the first modeled year using the region's discount rate. Unit: scenario's cost unit.

Julia code

  • Variable in JuMP model: vdiscountedsalvagevalue[r,t,y]

Discounted salvage value storage

Discounted residual value of capital investment storage remaining at the end of the modeling period. NEMO discounts to the first modeled year using the region's discount rate. Unit: scenario's cost unit.

Julia code

  • Variable in JuMP model: vdiscountedsalvagevaluestorage[r,s,y]

Discounted salvage value transmission

Discounted residual value of capital investment transmission remaining at the end of the modeling period. NEMO discounts to the first modeled year using the region's discount rate. Unit: scenario's cost unit.

Julia code

  • Variable in JuMP model: vdiscountedsalvagevaluetransmission[tr,y]

Total discounted cost

Sum of all discounted costs in a region and year (technology, storage, and transmission). Unit: scenario's cost unit.

Julia code

  • Variable in JuMP model: vtotaldiscountedcost[r,y]

Total discounted storage cost

Sum of discounted storage costs: vdiscountedcapitalinvestmentstorage - vdiscountedsalvagevaluestorage. Unit: scenario's cost unit.

Julia code

  • Variable in JuMP model: vtotaldiscountedstoragecost[r,s,y]

Total discounted technology cost

Sum of discounted technology costs: vdiscountedoperatingcost + vdiscountedcapitalinvestment + vdiscountedtechnologyemissionspenalty - vdiscountedsalvagevalue. Unit: scenario's cost unit.

Julia code

  • Variable in JuMP model: vtotaldiscountedcostbytechnology[r,t,y]

Total discounted transmission cost

Sum of discounted transmission costs: vdiscountedcapitalinvestmenttransmission - vdiscountedsalvagevaluetransmission + vdiscountedoperatingcosttransmission. Unit: scenario's cost unit.

Julia code

  • Variable in JuMP model: vtotaldiscountedtransmissioncostbyregion[r,y]

Demand

Nodal annual demand

Nodal demand summed across time slices. Unit: region's energy unit.

Julia code

  • Variable in JuMP model: vdemandannualnodal[n,f,y]

Non-nodal annual demand

Non-nodal demand summed across time slices. Unit: region's energy unit.

Julia code

  • Variable in JuMP model: vdemandannualnn[r,f,y]

Nodal demand

Time-sliced nodal demand (time-sliced demand is defined with SpecifiedAnnualDemand and SpecifiedDemandProfile). Unit: region's energy unit.

Julia code

  • Variable in JuMP model: vdemandnodal[n,l,f,y]

Non-nodal demand

Time-sliced non-nodal demand (time-sliced demand is defined with SpecifiedAnnualDemand and SpecifiedDemandProfile). Unit: region's energy unit.

Julia code

  • Variable in JuMP model: vdemandnn[r,l,f,y]

Non-nodal rate of demand

Rate of time-sliced non-nodal demand (time-sliced demand is defined with SpecifiedAnnualDemand and SpecifiedDemandProfile). Unit: region's energy unit / year.

Julia code

  • Variable in JuMP model: vrateofdemandnn[r,l,f,y]

Emissions

Annual technology emissions by mode

Annual emissions produced by a technology operating in the specified mode. Unit: scenario's emissions unit.

Julia code

  • Variable in JuMP model: vannualtechnologyemissionbymode[r,t,e,m,y]

Annual technology emissions

Annual emissions produced by a technology. Unit: scenario's emissions unit.

Julia code

  • Variable in JuMP model: vannualtechnologyemission[r,t,e,y]

Annual emissions

Total emissions in a year. Unit: scenario's emissions unit.

Julia code

  • Variable in JuMP model: vannualemissions[r,e,y]

Model period emissions

Total emissions during the modeling period (i.e., over all years). Unit: scenario's emissions unit.

Julia code

  • Variable in JuMP model: vmodelperiodemissions[r,e]

Renewable energy target

Annual production of fuels considered in renewable target

Total production of fuels tagged with RETagFuel. See REMinProductionTarget for details of how this quantity is used in renewable energy target calculations. Unit: region's energy unit.

Julia code

  • Variable in JuMP model: vretotalproductionoftargetfuelannual[r,y]

Annual renewable energy production

Total production by technologies tagged with RETagTechnology, pro-rating each technology's production by its RETagTechnology. See REMinProductionTarget for details of how this quantity is used in renewable energy target calculations. Unit: region's energy unit.

Julia code

  • Variable in JuMP model: vtotalreproductionannual[r,y]

Reserve margin

Demand needing reserve margin

Total rate of production of fuels tagged with ReserveMarginTagFuel. This variable is an element in reserve margin calculations. Unit: region's energy unit / year.

Julia code

  • Variable in JuMP model: vdemandneedingreservemargin[r,l,y]

Total capacity in reserve margin

Total technology capacity (combining all technologies) that counts toward meeting the region's reserve margin. Unit: region's energy unit / year.

Julia code

  • Variable in JuMP model: vtotalcapacityinreservemargin[r,y]

Storage

Accumulated new storage capacity

Total endogenously determined storage capacity existing in a year. Unit: region's energy unit.

Julia code

  • Variable in JuMP model: vaccumulatednewstoragecapacity[r,s,y]

New storage capacity

New endogenously determined storage capacity added in a year. Unit: region's energy unit.

Julia code

  • Variable in JuMP model: vnewstoragecapacity[r,s,y]

Nodal rate of storage charge

Rate of energy stored in nodal storage. Unit: region's energy unit / year.

Julia code

  • Variable in JuMP model: vrateofstoragechargenodal[n,s,l,y]

Nodal rate of storage discharge

Rate of energy released from nodal storage. Unit: region's energy unit / year.

Julia code

  • Variable in JuMP model: vrateofstoragedischargenodal[n,s,l,y]

Nodal storage level time slice end

Energy in nodal storage at the end of the first hour in a time slice. Unit: region's energy unit.

Julia code

  • Variable in JuMP model: vstorageleveltsendnodal[n,s,l,y]

Nodal storage level time slice group 1 start

Energy in nodal storage at the start of a time slice group 1. Unit: region's energy unit.

Julia code

  • Variable in JuMP model: vstorageleveltsgroup1startnodal[n,s,tg1,y]

Nodal storage level time slice group 1 end

Energy in nodal storage at the end of a time slice group 1. Unit: region's energy unit.

Julia code

  • Variable in JuMP model: vstorageleveltsgroup1endnodal[n,s,tg1,y]

Nodal storage level time slice group 2 start

Energy in nodal storage at the start of a time slice group 2 within a time slice group 1. Unit: region's energy unit.

Julia code

  • Variable in JuMP model: vstorageleveltsgroup2startnodal[n,s,tg1,tg2,y]

Nodal storage level time slice group 2 end

Energy in nodal storage at the end of a time slice group 2 within a time slice group 1. Unit: region's energy unit.

Julia code

  • Variable in JuMP model: vstorageleveltsgroup2endnodal[n,s,tg1,tg2,y]

Nodal storage level year end

Energy in nodal storage at the end of a year. Unit: region's energy unit.

Julia code

  • Variable in JuMP model: vstoragelevelyearendnodal[n,s,y]

Non-nodal rate of storage charge

Rate of energy stored in non-nodal storage. Unit: region's energy unit / year.

Julia code

  • Variable in JuMP model: vrateofstoragechargenn[r,s,l,y]

Non-nodal rate of storage discharge

Rate of energy released from non-nodal storage. Unit: region's energy unit / year.

Julia code

  • Variable in JuMP model: vrateofstoragedischargenn[r,s,l,y]

Non-nodal storage level time slice end

Energy in non-nodal storage at the end of the first hour in a time slice. Unit: region's energy unit.

Julia code

  • Variable in JuMP model: vstorageleveltsendnn[r,s,l,y]

Non-nodal storage level time slice group 1 start

Energy in non-nodal storage at the start of a time slice group 1. Unit: region's energy unit.

Julia code

  • Variable in JuMP model: vstorageleveltsgroup1startnn[r,s,tg1,y]

Non-nodal storage level time slice group 1 end

Energy in non-nodal storage at the end of a time slice group 1. Unit: region's energy unit.

Julia code

  • Variable in JuMP model: vstorageleveltsgroup1endnn[r,s,tg1,y]

Non-nodal storage level time slice group 2 start

Energy in non-nodal storage at the start of a time slice group 2 within a time slice group 1. Unit: region's energy unit.

Julia code

  • Variable in JuMP model: vstorageleveltsgroup2startnn[r,s,tg1,tg2,y]

Non-nodal storage level time slice group 2 end

Energy in non-nodal storage at the end of a time slice group 2 within a time slice group 1. Unit: region's energy unit.

Julia code

  • Variable in JuMP model: vstorageleveltsgroup2endnn[r,s,tg1,tg2,y]

Non-nodal storage level year end

Energy in non-nodal storage at the end of a year. Unit: region's energy unit.

Julia code

  • Variable in JuMP model: vstoragelevelyearendnn[r,s,y]

Storage lower limit

Minimum energy in storage (determined by MinStorageCharge and storage capacity). Unit: region's energy unit.

Julia code

  • Variable in JuMP model: vstoragelowerlimit[r,s,y]

Storage upper limit

Maximum energy in storage (determined by storage capacity). Unit: region's energy unit.

Julia code

  • Variable in JuMP model: vstorageupperlimit[r,s,y]

Technology capacity

Accumulated new capacity

Total endogenously determined technology capacity existing in a year. Unit: region's power unit.

Julia code

  • Variable in JuMP model: vaccumulatednewcapacity[r,t,y]

New capacity

New endogenously determined technology capacity added in a year. Unit: region's power unit.

Julia code

  • Variable in JuMP model: vnewcapacity[r,t,y]

Number of new technology units

Number of increments of new endogenously determined capacity added for a technology in a year. The size of each increment is set with the CapacityOfOneTechnologyUnit parameter. No unit.

Julia code

  • Variable in JuMP model: vnumberofnewtechnologyunits[r,t,y]

Total annual capacity

Total technology capacity (endogenous and exogenous) existing in a year. Unit: region's power unit.

Julia code

  • Variable in JuMP model: vtotalcapacityannual[r,t,y]

Transmission

Annual transmission

Net annual transmission of a fuel from a node. Unit: region's energy unit.

Julia code

  • Variable in JuMP model: vtransmissionannual[n,f,y]

Transmission built

Fraction of a candidate transmission line built in a year. No unit (ranges between 0 and 1). This variable will have an integral value if you do not select the continuoustransmission option when calculating a scenario (see calculatescenario).

Julia code

  • Variable in JuMP model: vtransmissionbuilt[tr,y]

Transmission by line

Flow of a fuel through a transmission line (from the first node of the line [n1] to the second node of the line [n2]). Unit: megawatts.

Julia code

  • Variable in JuMP model: vtransmissionbyline[tr,l,f,y]

Transmission exists

Fraction of a transmission line existing in a year. No unit (ranges between 0 and 1).

Julia code

  • Variable in JuMP model: vtransmissionexists[tr,y]

Voltage angle

Voltage angle at a node in a time slice. NEMO only calculates this variable if you enable direct current optimized power flow modeling (see TransmissionModelingEnabled). Unit: radians.

Julia code

  • Variable in JuMP model: vvoltageangle[n,l,y]