This mod is unbalanced! 20 uranium only yields 80GJ, not the crazy energy that your mod delivers!
The energy values for your fuel are hilariously overpowered!
False. So, if you do the math on the Nuclear Fuel Cell, you come to the conclusion that each unit of U235 yields around 48GJ and each unit of u238 around 1.6842 GJ. We assume a thermal neutron spectrum. Remember, there is only 1 u235 for every 10 fuel cells. u238 contributes about 40% of the total energy of the fuel. Thus, (80 * .6) / 1 = ~48GJ per unit of u235 and (80 * .4) / 19 = 1.6842GJ per u238. The thing is, that doesn't make any sense. 1 gram of u235 contains 79.4GJ of energy. u238 yields no energy itself, but does undergo neutron capture to become pu239, and that is worth around 80.6GJ per gram. In a light water reactor (the type I assume the factorio base-game reactor to be) the amount of u238 that gets converted to pu239 depends on the breeding ratio, which is generally around 60% for a LWR. The easy way to think of that would be that for every gram of u235 you burn, you 'get' and burn 1 gram of pu239. So a nuclear fuel cell should contain at least 16GJ of energy each (so 160GJ total for the 10 cells the recipe makes). I can't fathom one unit being any less than one gram.
But here's the rub. If I scale all the recipes based on grams, then I end up making you, the player, need to mine 500 million uranium ore (actually more than this) PER light water reactor you build. This is obviously unreasonable. Why does it take 500 million? Because 10 ore become 1 unit of either u238 or 235, and you need 50 tons of ore for a 500MWe reactor core. 50 tons is 50,000,000 grams. 10 ore per gram of fuel = 500 million ore needs to be mined. This also doesn't account for the extra ore you need to mine so you can enrich the u238 into u235. So, instead, I decided that the recipes should assume that one unit of u235/238 is one kilogram. The energy in one kilogram of u235 then becomes 80TJ, not 80GJ.
There's another wrinkle, besides the 500 million ore problem. The wrinkle is coal. See, the Nuclear Fuel Cell and Nuclear Fuel both don't have energy values that make any sense (1.21 GJ is a Back to the Future meme). But coal? Coal does. 1 Kg of coal has ~3.5 MJ of energy in it (https://www.ocean.washington.edu/courses/envir215/energynumbers.pdf, pg 2). Coal varies in quality, so the 4MJ in game is not unreasonable. That means that one unit of coal is around 1kg, and 1 unit of most other items in game being 1kg makes a fair bit of logical sense. With that in mind, I rebalanced the mod around the assumption that each unit of u235/238 weighed 1kg instead of 1 gram. Suddenly, the player only needed to mine 500,000 units of uranium ore per LWR, and far less for more advanced designs. The offset was that you end up with some truly hilarious energy densities, like each unit of uranium being worth around 80 TJ of energy. A single unit of u238, in a MSR, will run at full power for hours in the real world. I haven't timed exactly.
I don't know why the factorio devs decided to make uranium hilariously underpowered. I will not lie about basic physics in my mod though. It is a well known fact how much energy uranium contains. If I have to chose between breaking faith with physics and making a bad assumption about the game developers intentions, I will always choose the bad assumption. The recipes take a reasonable amount of resources when scaled based off the assumption that 1 unit = 1 kg. Their energy values though...it's not OP. It's reality.
Light water reactor and Metal-cooled reactors typically replace 1/3 of the core during refueling, not one rod!
Correct. Factorio doesn't contain a way for me to simulate this as only a single fuel element can be burned at any given time. Sorry. To compensate, I require a full core load of fuel be placed into the reactor when it is powered on, and all refueling cycles just need to replace the fuel that got burned off (see 'burnup' questions).
Why does it take 345 refined uranium (u238 + u235) to make a LWR fuel rod assembly, but only 7 units to refuel the reactor for the same energy output?
In nuclear reactors, there is a concept of a burnup rate. The burnup rate is literally the amount of uranium in the fuel (since all Factorio reactors are uranium powered) which is used in making power. In a generation II nuclear reactor, the burnup rate is around 5%. The burnup rate is expressed in 'GWd/t' which stands for 'Gigawatt-days per ton'. If you'd like to learn more, https://www.nuclear-power.net/nuclear-power/reactor-physics/reactor-operation/fuel-burnup/ is an extremely helpful resource. Be sure to expand the sections for individual isotopes.
The LWR researchable in this mod has a 3% burnup rate. The reason why is that it is meant to be a crude attempt at nuclear. A generation I design, and an early one at that. That's why it is only 25% efficient at converting heat to energy, whereas most modern/upgraded nuclear power plants in 2019 average 30-33% efficiency. Also, it encourages the player to research Liquid Metal Reactors, which offer both a higher burnup rate and a higher efficiency.
Because of the 3% burnup rate, only 3% of the uranium in the fuel rod actually needs to be replaced with fresh fuel. For LWR, we assume the Factorio Engineer doesn't remember how to salvage the plutonium during the refueling process, so the full 3% needs to be restocked, but for LMR and MSR reactors, the Factorio engineer remembers how to preserve the Plutonium content of the fuel, completely removing the need (as both those reactors are breeders) for additional U235 in the fuel cycle. u235 can still be used for fuel, of course, but it will not be required for anything above a LWR.
We are assuming that the Factorio Engineer's knowledge of Nuclear Chemsitry far surpasses our own and he can remove 100% all the 'bad' products from the fuel.
As a bonus: because the burnup rate is only 3%, the 31.6TJ energy in a LWR Fuel Rod Assembly is only the energy in the 3% of the rod that will actually be burned. In reality, assuming 100% burnup was somehow possible, the reactor rod's 'true', 100%, energy value would be ~1,053 TJ. The energy is there, the Gen I LWR just can't tap into it.
These buildings are huge, but they are far smaller than the reactor layouts they are replacing. Bad balance!
This is actually not true. https://www.iaea.org/sites/default/files/publications/magazines/bulletin/bull20-6/20604782938.pdf shows (PDF pages 7/8) the energy density for light metal reactors. http://www.world-nuclear.org/uploadedFiles/org/WNA/Publications/Nuclear_Information/Pocket%20Guide%20Reactors.pdf provides averages for Light Water Reactors. The sizes to focus on are just for the core itself, not the reactor vessel. A 1-1.5GWe class LWR reactor core is around 33 cubic meters. A 1.5GWe LMR is around half that size or less (8-15 m3). Cubic meters is not a metric in Factorio, only square meters. Thus, a LWR core is around (rounding up) 12 square meters for 1-1.5GWe, and a LMR needs around 9 square meters for the same power output. In Factorio, you need 8 reactors, at a size of 25 meters squared each in order to get 1.1GWe of output. That does not include the heat pipes, exchangers, or steam turbines.
Even if we compare the reactor vessel sizes, LWR need around 25m2 for the RPV and LMRs need around 330 m2. LMRs need so much more room for the reactor vessel because they tend to be 'pool' designs, where the core is placed in a massive pool of sodium metal to help absorb heat. That's why the core on LMRs is so tiny but the reactor vessel itself is quite large. If you're struggling to keep track, here's a table:
Reactor type (1-1.5GWe output) | Area of Active core | Area of Reactor Vessel
Factorio Vanilla | ??m2 | 200m2
Light Water Reactor | 11m2 | 25m2
Liquid Metal Reactor | 12m2 | 330m2
So, no, my reactor sizes are totally reasonable, even for the entire site, because look at any overhead photo of a nuclear plant and you'll quickly realize the turbine hall is smaller than the secondary containment building for even a single reactor core in most cases. At a large site, with 4 or more 1GWe+ cores (so the site output is > 4GWe) the turbine hall is only slighly larger than a single secondary containment building.
See https://ocw.mit.edu/courses/nuclear-engineering/22-06-engineering-of-nuclear-systems-fall-2010/lectures-and-readings/MIT22_06F10_lec06a.pdf for great info about more modern LWR designs.
Why are there no outputs from the fuel cycle for the MSR?
The MSR has a built in fuel reprocessing plant. It is also a breeder reactor. That means that it is capable of burning up 100% of the fuel you put into the reactor given enough time and online fuel reprocessing. The only output from such a plant would be (relatively) short term nuclear waste. Actinides and other nasty radioisotopes with half lives of less than a century or so. I did not want to burden the player with a resource which had no use (apart from maybe filling for anti-biter artillery shells) and instead show this waste as a huge pollution output on the MSR. There is an option in settings to disable MSR pollution is you prefer to RP that your engineer does something useful with this nuclear waste.
Why can I refuel LMR and MSR reactors with just u238? Isn't u235 needed?
Why does the recipe for LMR/MSR fuel resupply using u238 produce fuel with more energy than the u235 recipe?
Why do the LMR and MSR both take u235 to build but not to run?
They are both breeder reactors. "Breeding", in the context of a nuclear reactor, means that they create fuel from materials within the core. Specifically, U238 captures 1 neutron and becomes Pu239. Pu239 actually has more fission energy than u235 (about 1% more). Thus, u235 is only needed in the first core, to get the reactor to criticality. After that, u238 gets converted to pu239, and a steady state is reached where there is enough pu239 to keep the reactor capable of going critical and converting additional u238 to pu239.
To keep the mod simple, pu239 is not created as a discrete resource. Rather, we assume the Factorio Engineer, during reprocessing, can carry the plutonium content of the spent fuel over into the reprocessed fuel. That's why the recipes for reprocessed fuel take 1% fewer materials tha they should given the burnup rates of their respective reactors.
What does 'burnup' mean?
Burnup is a measure of what percentage of fuel put into a nuclear reactor core actually gets converted to energy. Unlike a gasoline powered car, for example, where 99% of the gasoline you put into the fuel tank gets burned in the engine (some is lost to pressure relief, evaporation, engine starts/stops, etc), in a nuclear reactor only a portion of the fuel put into the core actually gets consumed. The burnup % is this number. In real-world reactors, burnup is expressed a GWd/t (Gigawatt-days per ton). Meaning one ton of fuel, with the reactor operating at 100% power, will fuel the reactor for X days. This metric is used because, in a LWR for example, u235 splits into Krypton and Barium. But that isn't always what happens. Sometimes the u235 becomes u236, or pu239. The barium and krypton each split into multiple paths. The fuel cycle chain of fissions becomes a massive branching tree of possibilities, with a proability assigned to each branch.
Because modeling that is extremely difficult, nuclear engineers don't bother. Instead, they say "We put this much fuel in by mass, and it was made of this composition. It should contain X energy." and then they turn the reactor on and see how long it burns and with how much power. Then they go back and say "We got Y power before we needed to refuel. The spent fuel contained X tons of Z materials. Therefore, our reactor is E efficient.". Ezpz lemon squeezy.
Reactors don't continue to use fuel when there isn't energy demand. Bug!
Yes and no. Within Factorio there are three prototypes for power generation:
- Reactors - Take fuel and create heat.
- Boilers - Take fuel and create a fluid.
- Generators - Take fuel and create power directly.
Reactors can only output heat. Nothing else. Boilers can only output a fluid, nothing else. Generators can only output power, nothing else. Only the reactor prototype uses its fuel on a timer instead of based on output energy demand. It is not possible to create a prototype, that has to be done by the Factorio Dev's in the game's base code. Mod makers cannot create new prototypes.
I opted to use a Generator as the base type for the reactors in this mod as the fluid system is used in the other two options, and the fluid system's UPS impact is well known. This mods #1 goal is to improve UPS with nuclear. Everything else is secondary to that goal. I know it isn't realistic and that makes me sad, but my hands are tied.
Thorium!
I thought about it. I even did a fair bit of development twoard it. But, at the end of the day, I'd need to add thorium as a resource, create a way to fabricate it, then deal with the complexity of it, and all for what? There are other molten salt reactor designs that use uranium and, at a physics level, there is no reason a molten salt reactor that uses uranium as its fuel(s) and operations in a fast spectrum cannot achieve most, if not all, of the same goals that a LFTR can for the purposes of power generation. Even the 'no long-lived waste!' should be attainable, since we're assuming a closed fuel cycle. The weapons proliferation risk is the one thing that wouldn't be solved, but, well, we're on a planet by ourselves. That is NOT a concern. I just didn't see the reason to do a LFTR justice when a uranium based MSR would do 99% of the same thing and be far less work.