# Parameters

NEMO includes a number of parameters that define data and set the terms of constraints for scenarios. As with model dimensions, parameters are specified in a NEMO scenario database. NEMO reads them from the database and uses them to build constraints at run-time. Generally, NEMO does not create separate Julia variables for parameters.

Most parameters are subscripted by one or more dimensions. Parameter tables in a scenario database refer to dimensions by their abbreviation (r for region, t for technology, and so on). The abbreviation serves as the name of the dimension's column, and the column should be populated with unique identifiers for the dimension (val, name, or id, depending on the dimension).

## Accumulated annual demand

Exogenous demand that is not time sliced. NEMO ensures the demand is met, but it may be met at any point in the specified year.

#### Scenario database

Table: AccumulatedAnnualDemand

NameTypeDescription
idintegerUnique identifier for row
rtextRegion
ftextFuel
ytextYear
valrealDemand (region's energy unit)

## Annual emission limit

Maximum emissions allowed in the specified year.

#### Scenario database

Table: AnnualEmissionLimit

NameTypeDescription
idintegerUnique identifier for row
rtextRegion
etextEmission
ytextYear
valrealAmount of emissions (scenario's emissions unit)

## Annual exogenous emission

Exogenously specified emissions, assumed to occur regardless of what else is happening in the energy system.

#### Scenario database

Table: AnnualExogenousEmission

NameTypeDescription
idintegerUnique identifier for row
rtextRegion
etextEmission
ytextYear
valrealAmount of emissions (scenario's emissions unit)

## Availability factor

Not currently used.

## Capacity factor

Fraction of time a technology is available to operate.

#### Scenario database

Table: CapacityFactor

NameTypeDescription
idintegerUnique identifier for row
rtextRegion
ttextTechnology
ltextTime slice
ytextYear
valrealFraction (0 to 1)

## Capacity of one technology unit

Increment in which endogenously determined capacity is added for a technology.

Warning

If this parameter is defined, NEMO uses an integer variable to solve for the technology's endogenous capacity. This can substantially increase model run-time. If the parameter is not defined, a continuous variable is used instead.

#### Scenario database

Table: CapacityOfOneTechnologyUnit

NameTypeDescription
idintegerUnique identifier for row
rtextRegion
ttextTechnology
ytextYear
valrealIncrement for endogenous capacity additions (region's power unit)

## Capacity to activity unit

Factor relating a region's power unit to its energy unit. See Units of measure.

#### Scenario database

Table: CapacityToActivityUnit

NameTypeDescription
idintegerUnique identifier for row
rtextRegion
ttextTechnology
valrealFactor value (region's energy unit / (power unit * year))

## Capital cost

Cost to build a unit of capacity for the specified technology.

#### Scenario database

Table: CapitalCost

NameTypeDescription
idintegerUnique identifier for row
rtextRegion
ttextTechnology
ytextYear
valrealCost (scenario's cost unit / region's power unit)

## Capital cost storage

Cost to build a unit of capacity for the specified storage.

Tip

Since storage is typically linked to charging and discharging technologies (see TechnologyToStorage and TechnologyFromStorage), and capital costs are typically defined for those technologies, it may not be necessary to use this parameter. If it is used, the costs specified by CapitalCostStorage are added to the technology costs.

#### Scenario database

Table: CapitalCostStorage

NameTypeDescription
idintegerUnique identifier for row
rtextRegion
stextStorage
ytextYear
valrealCost (scenario's cost unit / region's energy unit)
Note

Note that capacity for storage is denominated in energy terms.

## Default parameters

Default value for the parameter identified by tablename.

#### Scenario database

Table: DefaultParams

NameTypeDescription
idintegerUnique identifier for row
tablenametextName of parameter table
valrealDefault value

## Depreciation method

Method for calculating the salvage value of technology, storage, and transmission line capacity existing at the end of the modeling period.

• 1: Sinking fund depreciation (assuming the applicable discount rate is not 0; if it is, straight line depreciation is used instead)

• 2: Straight line depreciation

#### Scenario database

Table: DepreciationMethod

NameTypeDescription
idintegerUnique identifier for row
rtextRegion
valrealDepreciation method (1 or 2)

## Discount rate

Rate used to discount costs in a region.

#### Scenario database

Table: DiscountRate

NameTypeDescription
idintegerUnique identifier for row
rtextRegion
valrealRate (0 to 1)

## Emission penalty

Cost of emissions.

#### Scenario database

Table: EmissionsPenalty

NameTypeDescription
idintegerUnique identifier for row
rtextRegion
etextEmission
ytextYear
valrealCost (scenario's cost unit / scenario's emissions unit)

## Emissions activity ratio

Emission factor for the indicated technology and mode.

Note

Emission factors can be negative, and if you specify a negative emission factor for a pollutant with an externality cost, your scenario may result in negative emission penalties. In this case, you may need to constrain the associated technology's operation to avoid an unbounded (infeasible) optimization problem. For example, if a technology can generate negative emissions of a pollutant with an externality cost, the cost of building and running the technology is lower than the externality value, and there are no limits on the technology's deployment and use, the optimization problem will be unbounded.

#### Scenario database

Table: EmissionActivityRatio

NameTypeDescription
idintegerUnique identifier for row
rtextRegion
ttextTechnology
etextEmission
mtextMode of operation
ytextYear
valrealFactor (scenario's emissions unit / region's energy unit)

## Fixed cost

Fixed operation and maintenance costs for a technology.

#### Scenario database

Table: FixedCost

NameTypeDescription
idintegerUnique identifier for row
rtextRegion
ttextTechnology
ytextYear
valrealCost (scenario's cost unit / region's power unit)

## Interest rate storage

Interest rate used to calculate financing costs for endogenously built storage capacity.

#### Scenario database

Table: InterestRateStorage

NameTypeDescription
idintegerUnique identifier for row
rtextRegion
stextStorage
ytextYear
valrealRate (0 to 1)

## Interest rate technology

Interest rate used to calculate financing costs for endogenously built technology capacity.

#### Scenario database

Table: InterestRateTechnology

NameTypeDescription
idintegerUnique identifier for row
rtextRegion
ttextTechnology
ytextYear
valrealRate (0 to 1)

## Input activity ratio

Factor multiplied by dispatched capacity to determine the use (input) of the specified fuel. InputActivityRatio is used in conjunction with OutputActivityRatio. A common approach is to:

1. Set the InputActivityRatio for input fuels to the reciprocal of the technology's efficiency.
2. Set the OutputActivityRatio for output fuels to 1.

For example, if a technology had an efficiency of 80%, the InputActivityRatio for inputs would be 1.25, and the OutputActivityRatio for outputs would be 1.0.

Note

NEMO will not simulate activity for a region, technology, mode of operation, and year unless you define a corresponding non-zero OutputActivityRatio or InputActivityRatio. In other words, activity is only simulated when it produces or consumes a fuel.

#### Scenario database

Table: InputActivityRatio

NameTypeDescription
idintegerUnique identifier for row
rtextRegion
ttextTechnology
ftextFuel
mtextMode of operation
ytextYear
valrealFactor

## Minimum storage charge

Minimum fraction of a storage's capacity that must be charged. NEMO ensures the charge never drops below this level.

Note

When this parameter is set, NEMO assumes that new storage capacity (endogenous and exogenous) is delivered with the minimum charge.

Warning

If you set a minimum storage charge, make sure the corresponding storage start level is at least as large as the minimum. Otherwise your model will be infeasible.

#### Scenario database

Table: MinStorageCharge

NameTypeDescription
idintegerUnique identifier for row
rtextRegion
stextStorage
ytextYear
valrealFraction (0 to 1)

## Minimum utilization

Minimum fraction of a technology's available capacity that must be utilized (dispatched) in a region, time slice, and year. NEMO calculates available capacity by multiplying installed capacity by the applicable capacity factor parameter. If the technology is involved in nodal transmission modeling, the minimum utilization rule applies equally to all nodes in the region.

Tip

It is not necessary to specify 0 for this parameter. NEMO assumes the minimum utilization is 0 if the parameter is not set.

#### Scenario database

Table: MinimumUtilization

NameTypeDescription
idintegerUnique identifier for row
rtextRegion
ttextTechnology
ltextTime slice
ytextYear
valrealFraction (0 to 1)

## Model period emission limit

Maximum emissions allowed in the modeling period (i.e., over all years). This parameter is not used when the calcyears argument of calculatescenario or writescenariomodel is invoked. See Calculating selected years for details.

#### Scenario database

Table: ModelPeriodEmissionLimit

NameTypeDescription
idintegerUnique identifier for row
rtextRegion
etextEmission
valrealAmount of emissions (scenario's emissions unit)

## Model period exogenous emission

Exogenously specified emissions, counted toward the model period emission limit regardless of what else is happening in the energy system.

#### Scenario database

Table: ModelPeriodExogenousEmission

NameTypeDescription
idintegerUnique identifier for row
rtextRegion
etextEmission
valrealAmount of emissions (scenario's emissions unit)

## Nodal distribution demand

For the specified node and the region containing it, fraction of the region's exogenously defined demand for the specified fuel that is assigned to the node. If in a given year transmission modeling is enabled for a fuel and region (see TransmissionModelingEnabled), and the fuel has exogenous demands in the region, the sum of NodalDistributionDemand across the nodes in the region should be 1.

#### Scenario database

Table: NodalDistributionDemand

NameTypeDescription
idintegerUnique identifier for row
ntextNode
ftextFuel
ytextYear
valrealFraction (0 to 1)

## Nodal distribution storage capacity

For the specified node and the region containing it, fraction of the specified storage's capacity in the region that is assigned to the node.

#### Scenario database

Table: NodalDistributionStorageCapacity

NameTypeDescription
idintegerUnique identifier for row
ntextNode
stextstorage
ytextYear
valrealFraction (0 to 1)

## Nodal distribution technology capacity

For the specified node and the region containing it, fraction of the specified technology's capacity in the region that is assigned to the node.

#### Scenario database

Table: NodalDistributionTechnologyCapacity

NameTypeDescription
idintegerUnique identifier for row
ntextNode
ttextTechnology
ytextYear
valrealFraction (0 to 1)

## Operational life

Lifetime of a technology in years. NEMO uses this parameter to:

1. Retire endogenously determined capacity. If a unit of capacity is built endogenously in year y, NEMO will retire the capacity in year y + OperationalLife.
2. Calculate the salvage value of endogenously determined capacity remaining at the end of the modeling period (see DepreciationMethod).

In this way, the parameter serves as both an operational and an economic lifetime.

Note

NEMO does not automatically retire exogenously specified technology capacity, which is defined by ResidualCapacity. It is up to you to do so in the values you provide for ResidualCapacity.

#### Scenario database

Table: OperationalLife

NameTypeDescription
idintegerUnique identifier for row
rtextRegion
ttextTechnology
valrealLifetime (years)

## Operational life storage

Lifetime of a storage in years. NEMO uses this parameter to:

1. Retire endogenously determined capacity. If a unit of capacity is built endogenously in year y, NEMO will retire the capacity in year y + OperationalLife.
2. Calculate the salvage value of endogenously determined capacity remaining at the end of the modeling period (see DepreciationMethod).

In this way, the parameter serves as both an operational and an economic lifetime.

Note

NEMO does not automatically retire exogenously specified storage capacity, which is defined by ResidualStorageCapacity. It is up to you to do so in the values you provide for ResidualStorageCapacity.

#### Scenario database

Table: OperationalLifeStorage

NameTypeDescription
idintegerUnique identifier for row
rtextRegion
stextStorage
valrealLifetime (years)

## Output activity ratio

Factor multiplied by dispatched capacity to determine the production (output) of the specified fuel. OutputActivityRatio is used in conjunction with InputActivityRatio. A common approach is to:

1. Set the InputActivityRatio for input fuels to the reciprocal of the technology's efficiency; and
2. Set the OutputActivityRatio for output fuels to 1.

For example, if a technology had an efficiency of 80%, the InputActivityRatio for inputs would be 1.25, and the OutputActivityRatio for outputs would be 1.0.

Note

NEMO will not simulate activity for a region, technology, mode of operation, and year unless you define a corresponding non-zero OutputActivityRatio or InputActivityRatio. In other words, activity is only simulated when it produces or consumes a fuel.

#### Scenario database

Table: OutputActivityRatio

NameTypeDescription
idintegerUnique identifier for row
rtextRegion
ttextTechnology
ftextFuel
mtextMode of operation
ytextYear
valrealFactor

## Ramp rate

Fraction of a technology's available capacity that can be brought online or taken offline in a time slice and year. Ramp rates determine how quickly a technology's utilization can change. NEMO ignores ramp rates of 1.0 (i.e., 100%) since they effectively don't impose a limit.

#### Scenario database

Table: RampRate

NameTypeDescription
idintegerUnique identifier for row
rtextRegion
ttextTechnology
ytextYear
ltextTime slice
valrealFraction (0 to 1)

## Ramping reset

Indicator that determines which time slices are exempt from ramp rate limitations. NEMO can set technology utilization to any level in these time slices. The following values are supported for this parameter:

• 0 - Exempts the first time slice in each year.
• 1 - Exempts the first time slice in each time slice group 1 and year.
• 2 - Exempts the first time slice in each time slice group 2, time slice group 1, and year.

Note that because of the way time slices and groups are configured in NEMO, these values build on one another. For example, the first time slice in each year is exempted in all cases, and the first slice in each group 1 and year is exempted when the value is 2. If you don't specify a value for this parameter, NEMO assumes the value is 2.

#### Scenario database

Table: RampingReset

NameTypeDescription
idintegerUnique identifier for row
rtextRegion
valinteger0, 1, or 2

## Renewable energy minimum production target

Fraction of production of fuels tagged with RETagFuel that constitutes a renewable energy target. NEMO ensures that production by technologies tagged with RETagTechnology meets or exceeds the target, pro-rating each technology's production by its RETagTechnology. To take a specific example, suppose that in a given region and year,

• There is one fuel - electricity - whose RETagFuel is 1;

• Total electricity production is 100 (in the region's energy unit);

• REMinProductionTarget is 0.5; and

• There are two technologies, t1 with an RETagTechnology of 0.75 and t2 with an RETagTechnology of 0.5.

Then NEMO will make sure that 75% of t1's production + 50% of t2's production is at least 50 energy units.

#### Scenario database

Table: REMinProductionTarget

NameTypeDescription
idintegerUnique identifier for row
rtextRegion
ytextYear
valrealFraction (0 to 1)

## Renewable energy tag fuel

Indicator of whether a fuel is included when calculating the renewable energy minimum production target.

#### Scenario database

Table: RETagFuel

NameTypeDescription
idintegerUnique identifier for row
rtextRegion
ftextFuel
ytextYear
valrealIndicator (0 for no, 1 for yes)
Tip

It is not necessary to populate zeros in RETagFuel for fuels that are excluded from the renewable energy minimum production target. NEMO assumes exclusion if a fuel isn't represented in the table.

## Renewable energy tag technology

Fraction of a technology's production that counts toward meeting the renewable energy minimum production target.

#### Scenario database

Table: RETagTechnology

NameTypeDescription
idintegerUnique identifier for row
rtextRegion
ttextTechnology
ytextYear
valrealFraction (0 to 1)

## Reserve margin

Multiplier that causes NEMO to deploy extra technology capacity as a reserve. In each year and time slice, NEMO ensures that the capacity of technologies tagged with ReserveMarginTagTechnology is at least ReserveMargin times the rate of production of fuels tagged with ReserveMarginTagFuel. Technology capacity is pro-rated by ReserveMarginTagTechnology in these calculations.

#### Scenario database

Table: ReserveMargin

NameTypeDescription
idintegerUnique identifier for row
rtextRegion
ytextYear
valrealMultiplier (typically > 0; e.g., 1.15 for a 15% reserve margin)

## Reserve margin tag fuel

Indicator of whether a fuel is included in reserve margin calculations.

#### Scenario database

Table: ReserveMarginTagFuel

NameTypeDescription
idintegerUnique identifier for row
rtextRegion
ftextFuel
ytextYear
valrealIndicator (0 for no, 1 for yes)
Tip

It is not necessary to populate zeros in ReserveMarginTagFuel for fuels that are excluded from reserve margin calculations. NEMO assumes exclusion if a fuel isn't represented in the table.

## Reserve margin tag technology

Fraction of a technology's capacity that counts toward the reserve margin.

#### Scenario database

Table: ReserveMarginTagTechnology

NameTypeDescription
idintegerUnique identifier for row
rtextRegion
ttextTechnology
ytextYear
valrealFraction (0 to 1)

## Residual capacity

Exogenously specified capacity for a technology. Note that NEMO does not automatically retire this capacity; it is up to you to do so in the values you provide for ResidualCapacity.

#### Scenario database

Table: ResidualCapacity

NameTypeDescription
idintegerUnique identifier for row
rtextRegion
ttextTechnology
ytextYear
valrealCapacity (region's power unit)

## Residual storage capacity

Exogenously specified capacity for a storage. Note that NEMO does not automatically retire this capacity; it is up to you to do so in the values you provide for ResidualStorageCapacity.

#### Scenario database

Table: ResidualStorageCapacity

NameTypeDescription
idintegerUnique identifier for row
rtextRegion
stextStorage
ytextYear
valrealCapacity (region's energy unit)

## Specified annual demand

Time-sliced exogenous demand. Use this parameter to specify the total demand in a year, and SpecifiedDemandProfile to assign the demand to time slices. NEMO ensures the demand is met in each time slice.

#### Scenario database

Table: SpecifiedAnnualDemand

NameTypeDescription
idintegerUnique identifier for row
rtextRegion
ftextFuel
ytextYear
valrealDemand (region's energy unit)

## Specified demand profile

Fraction of specified annual demand assigned to a time slice. For a given fuel and year, the sum of SpecifiedDemandProfile across time slices should be 1.

#### Scenario database

Table: SpecifiedDemandProfile

NameTypeDescription
idintegerUnique identifier for row
rtextRegion
ftextFuel
ltextTime Slice
ytextYear
valrealFraction (0 to 1)

Factor relating endogenously determined capacity for a storage and technologies that discharge it (see TechnologyFromStorage). When this parameter is specified, each unit of endogenous discharging capacity is accompanied by enough endogenous storage capacity to power it for the full load hours.

#### Scenario database

Table: StorageFullLoadHours

NameTypeDescription
idintegerUnique identifier for row
rtextRegion
stextStorage
ytextYear
valrealHours

## Storage maximum charge rate

Maximum charging rate for a storage.

Tip

When storage is linked to charging technologies (see TechnologyToStorage), the capacity of these technologies also limits the charging rate of the storage. This can obviate StorageMaxChargeRate in many cases.

#### Scenario database

Table: StorageMaxChargeRate

NameTypeDescription
idintegerUnique identifier for row
rtextRegion
stextStorage
valrealCharging rate (region's energy unit / year)

## Storage maximum discharge rate

Maximum discharging rate for a storage.

Tip

When storage is linked to discharging technologies (see TechnologyFromStorage), the capacity of these technologies also limits the discharging rate of the storage. This can obviate StorageMaxDischargeRate in many cases.

#### Scenario database

Table: StorageMaxDischargeRate

NameTypeDescription
idintegerUnique identifier for row
rtextRegion
stextStorage
valrealDischarging rate (region's energy unit / year)

## Storage start level

Fraction of exogenous storage capacity that is charged at the start of the first modeled year.

#### Scenario database

Table: StorageLevelStart

NameTypeDescription
idintegerUnique identifier for row
rtextRegion
stextStorage
valrealFraction (0 to 1)

## Technology from storage

Indicator of whether a technology can discharge a storage.

#### Scenario database

Table: TechnologyFromStorage

NameTypeDescription
idintegerUnique identifier for row
rtextRegion
ttextTechnology
stextStorage
mtextMode of operation
valrealIndicator (0 for no, 1 for yes)
Tip

It is not necessary to populate zeros in TechnologyFromStorage for technologies that aren't connected to a storage. NEMO assumes no connection if a technology isn't represented in the table.

## Technology to storage

Indicator of whether a technology can charge a storage.

#### Scenario database

Table: TechnologyToStorage

NameTypeDescription
idintegerUnique identifier for row
rtextRegion
ttextTechnology
stextStorage
mtextMode of operation
valrealIndicator (0 for no, 1 for yes)
Tip

It is not necessary to populate zeros in TechnologyToStorage for technologies that aren't connected to a storage. NEMO assumes no connection if a technology isn't represented in the table.

## Time slice group assignment

Map of time slices to time slice groups. Each time slice must belong to one time slice 1 and one time slice group 2.

#### Scenario database

Table: LTsGroup

NameTypeDescription
idintegerUnique identifier for row
ltextTime slice
lorderintegerOrder of time slice within time slice group 2 (1 for first time slice, incremented by 1 for each succeeding time slice)
tg2textTime slice group 2
tg1textTime slice group 1

## Total annual maximum capacity

Maximum capacity for a technology in a year (including both exogenous and endogenous capacity). Only specify this parameter if you want to enforce a particular limit.

#### Scenario database

Table: TotalAnnualMaxCapacity

NameTypeDescription
idintegerUnique identifier for row
rtextRegion
ttextTechnology
ytextYear
valrealCapacity (region's power unit)

## Total annual maximum capacity investment

Maximum addition of endogenously determined capacity for a technology in a year. Only specify this parameter if you want to enforce a particular limit. This parameter is scaled up to account for non-modeled years when the calcyears argument of calculatescenario or writescenariomodel is invoked. See Calculating selected years for details.

#### Scenario database

Table: TotalAnnualMaxCapacityInvestment

NameTypeDescription
idintegerUnique identifier for row
rtextRegion
ttextTechnology
ytextYear
valrealCapacity (region's power unit)

## Total annual maximum capacity storage

Maximum capacity for a storage in a year (including both exogenous and endogenous capacity). Only specify this parameter if you want to enforce a particular limit.

#### Scenario database

Table: TotalAnnualMaxCapacityStorage

NameTypeDescription
idintegerUnique identifier for row
rtextRegion
stextStorage
ytextYear
valrealCapacity (region's energy unit)

## Total annual maximum capacity investment storage

Maximum addition of endogenously determined capacity for a storage in a year. Only specify this parameter if you want to enforce a particular limit. This parameter is scaled up to account for non-modeled years when the calcyears argument of calculatescenario or writescenariomodel is invoked. See Calculating selected years for details.

#### Scenario database

Table: TotalAnnualMaxCapacityInvestmentStorage

NameTypeDescription
idintegerUnique identifier for row
rtextRegion
stextStorage
ytextYear
valrealCapacity (region's energy unit)

## Total annual minimum capacity

Minimum capacity for a technology in a year (including both exogenous and endogenous capacity). Only specify this parameter if you want to enforce a particular limit (other than 0, which NEMO assumes by default).

#### Scenario database

Table: TotalAnnualMinCapacity

NameTypeDescription
idintegerUnique identifier for row
rtextRegion
ttextTechnology
ytextYear
valrealCapacity (region's power unit)

## Total annual minimum capacity investment

Minimum addition of endogenously determined capacity for a technology in a year. Only specify this parameter if you want to enforce a particular limit (other than 0, which NEMO assumes by default). This parameter is scaled up to account for non-modeled years when the calcyears argument of calculatescenario or writescenariomodel is invoked. See Calculating selected years for details.

#### Scenario database

Table: TotalAnnualMinCapacityInvestment

NameTypeDescription
idintegerUnique identifier for row
rtextRegion
ttextTechnology
ytextYear
valrealCapacity (region's power unit)

## Total annual minimum capacity storage

Minimum capacity for a storage in a year (including both exogenous and endogenous capacity). Only specify this parameter if you want to enforce a particular limit (other than 0, which NEMO assumes by default). This parameter is scaled up to account for non-modeled years when the calcyears argument of calculatescenario or writescenariomodel is invoked. See Calculating selected years for details.

#### Scenario database

Table: TotalAnnualMinCapacityStorage

NameTypeDescription
idintegerUnique identifier for row
rtextRegion
stextStorage
ytextYear
valrealCapacity (region's energy unit)

## Total annual minimum capacity investment storage

Minimum addition of endogenously determined capacity for a storage in a year. Only specify this parameter if you want to enforce a particular limit (other than 0, which NEMO assumes by default).

#### Scenario database

Table: TotalAnnualMinCapacityInvestmentStorage

NameTypeDescription
idintegerUnique identifier for row
rtextRegion
stextStorage
ytextYear
valrealCapacity (region's energy unit)

## Total technology annual activity lower limit

Minimum 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. Only specify this parameter if you want to enforce a particular limit (other than 0, which NEMO assumes by default).

#### Scenario database

Table: TotalTechnologyAnnualActivityLowerLimit

NameTypeDescription
idintegerUnique identifier for row
rtextRegion
ttextTechnology
ytextYear
valrealNominal energy (region's energy unit)

## Total technology annual activity upper limit

Maximum 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. Only specify this parameter if you want to enforce a particular limit.

#### Scenario database

Table: TotalTechnologyAnnualActivityUpperLimit

NameTypeDescription
idintegerUnique identifier for row
rtextRegion
ttextTechnology
ytextYear
valrealNominal energy (region's energy unit)

## Total technology model period activity lower limit

Minimum nominal energy produced by a technology over the modeling period (i.e., all years). Nominal energy is calculated by multiplying dispatched capacity by the length of time it is dispatched. Only specify this parameter if you want to enforce a particular limit (other than 0, which NEMO assumes by default). This parameter is not used when the calcyears argument of calculatescenario or writescenariomodel is invoked. See Calculating selected years for details.

#### Scenario database

Table: TotalTechnologyModelPeriodActivityLowerLimit

NameTypeDescription
idintegerUnique identifier for row
rtextRegion
ttextTechnology
valrealNominal energy (region's energy unit)

## Total technology model period activity upper limit

Maximum nominal energy produced by a technology over the modeling period (i.e., all years). Nominal energy is calculated by multiplying dispatched capacity by the length of time it is dispatched. Only specify this parameter if you want to enforce a particular limit. This parameter is not used when the calcyears argument of calculatescenario or writescenariomodel is invoked. See Calculating selected years for details.

#### Scenario database

Table: TotalTechnologyModelPeriodActivityUpperLimit

NameTypeDescription
idintegerUnique identifier for row
rtextRegion
ttextTechnology
valrealNominal energy (region's energy unit)

Indicator of whether region r can trade a fuel with region rr.

#### Scenario database

Table: TradeRoute

NameTypeDescription
idintegerUnique identifier for row
rtextFirst region connected by trade route
rrtextSecond region connected by trade route
ftextFuel
ytextYear
valrealIndicator (0 for no, 1 for yes)
Note

To enable trade between two regions, only one row in TradeRoute is needed. Either region can be assigned to r, and the second region should be assigned to rr. Be sure to set val to 1.

Tip

It is not necessary to populate zeros in TradeRoute for cases where trade is disallowed. NEMO assumes trade is not allowed unless a route is explicitly defined in the table.

## Transmission capacity to activity unit

Multiplier to convert 1 megawatt-year to a region's energy unit (e.g., 0.031536 if the energy unit is petajoules). This parameter is required if transmission modeling is enabled (see TransmissionModelingEnabled).

#### Scenario database

Table: TransmissionCapacityToActivityUnit

NameTypeDescription
idintegerUnique identifier for row
rtextRegion
ftextFuel
valrealMultiplier

## Transmission modeling enabled

Indicator of whether transmission modeling is enabled for a region, fuel, and year. The type field specifies the approach to simulating energy flow:

• 1 - Direct current optimized power flow (DCOPF) (classical formulation).[1]
• 2 - DCOPF with a disjunctive relaxation.[2]
• 3 - Pipeline flow. This approach treats transmission lines as pipelines whose flow is limited only by their maximum flow and efficiency.
Note

If you choose type 1, NEMO will add a quadratic term to the optimization problem for your scenario. This will make the scenario incompatible with linear programming (LP)-only solvers such as GLPK and Cbc. To use DCOPF with an LP-only solver, choose type 2. This type produces equivalent results to type 1 but implements DCOPF with linear constraints.

Note

At present, NEMO does not endogenously simulate line losses for types 1 and 2.

#### Scenario database

Table: TransmissionModelingEnabled

NameTypeDescription
idintegerUnique identifier for row
rtextRegion
ftextFuel
ytextYear
typeintegerIndicator (1, 2, or 3)
Warning

You should not put rows in TransmissionModelingEnabled for regions/fuels/years for which you don't want to model transmission. NEMO does not support a type 0 for this parameter.

## Variable cost

Running cost for a technology, defined in terms of cost per unit of nominal energy produced. Nominal energy is calculated by multiplying dispatched capacity by the length of time it is dispatched.

#### Scenario database

Table: VariableCost

NameTypeDescription
idintegerUnique identifier for row
rtextRegion
ttextTechnology
mtextMode of operation
ytextYear
valrealCost (scenario's cost unit / region's energy unit)

## Year split

Width of a time slice as a fraction of the specified year.

#### Scenario database

Table: YearSplit

NameTypeDescription
idintegerUnique identifier for row
ltextTime slice
ytextYear
valrealFraction (0 to 1)
• 1See, e.g., Krishnan, V., Ho, J., Hobbs, B. F., Liu, A. L., McCalley, J. D., Shahidehpour, M. and Zheng, Q. P. (2016). Co-optimization of electricity transmission and generation resources for planning and policy analysis: review of concepts and modeling approaches. Energy Systems, 7(2). 297–332. DOI:10.1007/s12667-015-0158-4.
• 2Hui Zhang, Heydt, G. T., Vittal, V. and Mittelmann, H. D. (2012). Transmission expansion planning using an ac model: Formulations and possible relaxations. 2012 IEEE Power and Energy Society General Meeting 1–8. Proceedings of the 2012 IEEE Power & Energy Society General Meeting. New Energy Horizons - Opportunities and Challenges, San Diego, CA. IEEE. DOI:10.1109/PESGM.2012.6345410.