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]