Skip to content

Commit

Permalink
Add a simple renewables plus nuclear scenario. Only supported with the
Browse files Browse the repository at this point in the history
GenCost 2024-25 cost class.

* nemo/costs/gencost2025.py: Add nuclear costs from GenCost 2024-25.
* nemo/generators.py (Nuclear): New generator class.
* nemo/scenarios.py (re_plus_nuclear): New simple nuclear scenario.
* tests/test_generators.py (classlist): Add nuclear.
  • Loading branch information
bje- committed Dec 16, 2024
1 parent 8e7a801 commit 8d7e2b9
Show file tree
Hide file tree
Showing 4 changed files with 37 additions and 5 deletions.
12 changes: 12 additions & 0 deletions nemo/costs/gencost2025.py
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@ def __init__(self, discount, coal_price, gas_price, ccs_price):
tech.CCGT_CCS: 22.5,
tech.CentralReceiver: 124.2,
tech.Coal_CCS: 94.8,
tech.Nuclear: 200,
tech.OCGT: 14.1,
tech.PV1Axis: 12.0,
tech.Wind: 28.0,
Expand All @@ -49,6 +50,8 @@ def __init__(self, discount, coal_price, gas_price, ccs_price):
tech.Black_Coal: 4.7,
tech.CCGT: 4.1,
tech.CCGT_CCS: 8.0,
# 10 GJ/MWh heat rate (36% efficiency), $1.10/GJ fuel cost
tech.Nuclear: 5.3 + (10 * 1.1),
tech.OCGT: 8.1,
tech.WindOffshore: 0})

Expand All @@ -65,6 +68,7 @@ def __init__(self, discount, coal_price, gas_price, ccs_price):
table[tech.CCGT_CCS] = 4617
table[tech.CentralReceiver] = 5973
table[tech.Coal_CCS] = 10435
table[tech.Nuclear] = 8467
table[tech.OCGT] = 1302
table[tech.Behind_Meter_PV] = 1106
table[tech.PV1Axis] = 1224
Expand All @@ -89,6 +93,7 @@ def __init__(self, discount, coal_price, gas_price, ccs_price):
table[tech.CCGT_CCS] = 4486
table[tech.CentralReceiver] = 5217
table[tech.Coal_CCS] = 10202
table[tech.Nuclear] = 8322
table[tech.OCGT] = 1280
table[tech.Behind_Meter_PV] = 907
table[tech.PV1Axis] = 1016
Expand All @@ -113,6 +118,7 @@ def __init__(self, discount, coal_price, gas_price, ccs_price):
table[tech.CCGT_CCS] = 4257
table[tech.CentralReceiver] = 4388
table[tech.Coal_CCS] = 9810
table[tech.Nuclear] = 8091
table[tech.OCGT] = 1243
table[tech.Behind_Meter_PV] = 718
table[tech.PV1Axis] = 807
Expand All @@ -137,6 +143,7 @@ def __init__(self, discount, coal_price, gas_price, ccs_price):
table[tech.CCGT_CCS] = 4678
table[tech.CentralReceiver] = 5437
table[tech.Coal_CCS] = 10529
table[tech.Nuclear] = 8493
table[tech.OCGT] = 1302
table[tech.Behind_Meter_PV] = 1031
table[tech.PV1Axis] = 1141
Expand All @@ -161,6 +168,7 @@ def __init__(self, discount, coal_price, gas_price, ccs_price):
table[tech.CCGT_CCS] = 4292
table[tech.CentralReceiver] = 4269
table[tech.Coal_CCS] = 10001
table[tech.Nuclear] = 8322
table[tech.OCGT] = 1280
table[tech.Behind_Meter_PV] = 599
table[tech.PV1Axis] = 671
Expand All @@ -185,6 +193,7 @@ def __init__(self, discount, coal_price, gas_price, ccs_price):
table[tech.CCGT_CCS] = 4122
table[tech.CentralReceiver] = 3444
table[tech.Coal_CCS] = 9670
table[tech.Nuclear] = 8091
table[tech.OCGT] = 1243
table[tech.Behind_Meter_PV] = 505
table[tech.PV1Axis] = 569
Expand All @@ -209,6 +218,7 @@ def __init__(self, discount, coal_price, gas_price, ccs_price):
table[tech.CCGT_CCS] = 4678
table[tech.CentralReceiver] = 5666
table[tech.Coal_CCS] = 10529
table[tech.Nuclear] = 8467
table[tech.OCGT] = 1302
table[tech.Behind_Meter_PV] = 1069
table[tech.PV1Axis] = 1183
Expand All @@ -233,6 +243,7 @@ def __init__(self, discount, coal_price, gas_price, ccs_price):
table[tech.CCGT_CCS] = 4457
table[tech.CentralReceiver] = 4570
table[tech.Coal_CCS] = 10172
table[tech.Nuclear] = 8322
table[tech.OCGT] = 1280
table[tech.Behind_Meter_PV] = 753
table[tech.PV1Axis] = 843
Expand All @@ -257,6 +268,7 @@ def __init__(self, discount, coal_price, gas_price, ccs_price):
table[tech.CCGT_CCS] = 4184
table[tech.CentralReceiver] = 3814
table[tech.Coal_CCS] = 8734
table[tech.Nuclear] = 8091
table[tech.OCGT] = 1243
table[tech.Behind_Meter_PV] = 612
table[tech.PV1Axis] = 688
Expand Down
11 changes: 11 additions & 0 deletions nemo/generators.py
Original file line number Diff line number Diff line change
Expand Up @@ -431,6 +431,17 @@ def __init__(self, polygon, capacity, label=None):
self.setters = [(self.set_capacity, 0, capacity / 1000.)]


class Nuclear(Fuelled):
"""Nuclear power stations (large-scale)."""

patch = Patch(facecolor='pink')
"""Colour for plotting"""

def __init__(self, polygon, capacity, label=None):
"""Construct a nuclear generator."""
Fuelled.__init__(self, polygon, capacity, label)


class PumpedHydroPump(Storage, Generator):
"""Pumped hydro (pump side) model."""

Expand Down
11 changes: 10 additions & 1 deletion nemo/scenarios.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
from nemo import configfile, regions
from nemo.generators import (CCGT, CCGT_CCS, CST, OCGT, Battery, BatteryLoad,
Biofuel, Black_Coal, CentralReceiver, Coal_CCS,
DemandResponse, Hydro, PumpedHydroPump,
DemandResponse, Hydro, Nuclear, PumpedHydroPump,
PumpedHydroTurbine, PV1Axis, Wind, WindOffshore)
from nemo.polygons import (WILDCARD, cst_limit, offshore_wind_limit, pv_limit,
wind_limit)
Expand Down Expand Up @@ -234,6 +234,14 @@ def re_plus_fossil(context):
context.generators[:-4] + [OCGT(WILDCARD, 0)]


def re_plus_nuclear(context):
"""Renewables with nuclear and OCGT peakers."""
re100(context)
context.generators = \
[Nuclear(WILDCARD, 0)] + context.generators[:-4] + \
[OCGT(WILDCARD, 0)]


def re100_dsp(context):
"""Mostly renewables with demand side participation."""
re100(context)
Expand Down Expand Up @@ -268,6 +276,7 @@ def re100_south_aus(context):
'coal-ccs': coal_ccs,
're+ccs': re_plus_ccs,
're+fossil': re_plus_fossil,
're+nuclear': re_plus_nuclear,
're100': re100,
're100-qld': re100_qld,
're100-nsw': re100_nsw,
Expand Down
8 changes: 4 additions & 4 deletions tests/test_generators.py
Original file line number Diff line number Diff line change
Expand Up @@ -62,10 +62,10 @@
generators.Fossil, generators.Fuelled,
generators.Generator, generators.Geothermal,
generators.Geothermal_EGS, generators.Geothermal_HSA,
generators.Hydro, generators.HydrogenGT, generators.OCGT,
generators.PV, generators.PV1Axis,
generators.ParabolicTrough, generators.Patch,
generators.PumpedHydroPump,
generators.Hydro, generators.HydrogenGT,
generators.Nuclear, generators.OCGT, generators.PV,
generators.PV1Axis, generators.ParabolicTrough,
generators.Patch, generators.PumpedHydroPump,
generators.PumpedHydroTurbine, generators.Storage,
generators.TraceGenerator, generators.Wind,
generators.WindOffshore]
Expand Down

0 comments on commit 8d7e2b9

Please sign in to comment.