Well the debug info(the one you get by pressing f5) said that electric network used absolutely zero cpu time no matter how many assemblers or mines or inserters I put down. And all the megabase screenshots I could find with 5 minutes of googling said that their pure solar only 10kspm megabase electric network used over 1ms. So I would say yes.mrvn wrote: ↑Fri Jul 26, 2019 3:41 pmBut was it any faster than the same with solar?PunPun wrote: ↑Thu Jul 25, 2019 11:25 pmTried it. Changed it to use void energy source and it worked just fine without having a powerpole with no blinking icons. Did it for mining drills,labs and inserters too. And while I was at it made their crafting cost be 1 stone. I also made a recipe for one stone to give 10000 of every science and made it have .1s craft time. And also changed the max stacksize of all science to be 2mil and made inserters to move 2mil stacks and labs to have 2mil research speed. I very easily got a 10mil science per second factory that was running at 60ups with zero solar panels and longest part on the entire project was waiting for the game to load. And I could have gone much further if I wanted to but that would have been a waste of time.mrvn wrote: ↑Thu Jul 25, 2019 12:02 pmthat affect. Try it out, mod an assembler to use 0 energy and place it without a power pole. Does the "no energy" icon blink? My guess is yes.
Changing every electrical entity to burner entity and setting them to 0 might though. The question then would be: Are burner entities more CPU efficient than electrical? They might be.
A Case for Balancing Nuclear Power
Re: A Case for Balancing Nuclear Power
- BlueTemplar
- Smart Inserter
- Posts: 3234
- Joined: Fri Jun 08, 2018 2:16 pm
- Contact:
Re: A Case for Balancing Nuclear Power
Naah, the right™ way to play Factorio is to ass around for 2 hours trying to make a design that's not even the most effective, but the most pleasing to the eye of the player that designed it !PunPun wrote: ↑Wed Jul 24, 2019 11:52 pmAnd if you use 2 hours building nuclear plants you are doing it wrong. So you spend 30 seconds to plop down the blueprints and wait 2 minutes for the robots to put it together. Also if you build the nuclear plants correctly(with minimal pipes and zero tanks) they take less than .1%(especially with the new parallel fluid simulation introduced in 0.17) so 0.042h+200h*0.001=0.242h and nuclear wins.mrvn wrote: ↑Wed Jul 24, 2019 10:45 pm If you spend 6h building a solar plant then you are doing factorio wrong. It's about automation. So you spend 1h setting up bot production and blueprinting and then the bots build the plant in the background in 6h at 5% UPS cost. So 1h + 5*0.05 = 1.25h. Solar wins.
Note: it used to be much more than 1%. And when the game drops from 60 UPS to 30UPS playing is simply half the fun.
Also during those 6 hours the bots and asemblers and whatnots could be doing something more productive other than planting those solar panels. And you could have used the resources that went to the panels themselves in making something else. And that is not even counting the time it takes to clear all the biters and nests and landfill all the water where you plan to put down the 2mil panels.
It's not just the amount of time you personally spent clicking things.
These are also completely speculative numbers that are ultimately completely meaningless. It's pretty impossible to guess what the numbers actually are and what the break even point actually is until someone benchmarks them.
- Attachments
-
- 160MW_4nuke_try2_steam&fuel_level.png (4.33 MiB) Viewed 6846 times
BobDiggity (mod-scenario-pack)
Re: A Case for Balancing Nuclear Power
BlueTemplar wrote: ↑Sat Jul 27, 2019 11:29 am Naah, the right™ way to play Factorio is to ass around for 2 hours trying to make a design that's not even the most effective, but the most pleasing to the eye of the player that designed it !
+1 for the right way to play!!
Re: A Case for Balancing Nuclear Power
As far as UPS goes, the best way to deal with it is decreasing the number of buildings. That can be achieved by adding additional tiers of steam turbine that work at higher temperatures, or simply increasing the max temperature of nuclear steam and the heat pipe system in the first place. You could even mod that in, I think, to try it out.
Re: A Case for Balancing Nuclear Power
Can you raise the max temp of the reactor from 1000°C?McDuff wrote: ↑Thu Aug 22, 2019 12:18 pm As far as UPS goes, the best way to deal with it is decreasing the number of buildings. That can be achieved by adding additional tiers of steam turbine that work at higher temperatures, or simply increasing the max temperature of nuclear steam and the heat pipe system in the first place. You could even mod that in, I think, to try it out.
Re: A Case for Balancing Nuclear Power
I'd like to know what the official answer to this is supposed to be. I don't think I found an answer on the wiki, so if anyone knows where it is or knows the answer: please. Right now, my nuclear mod is pushing the steam temp to 970, the highest I could get without potentially breaking vanilla-compatible megareactors.
-
- Filter Inserter
- Posts: 587
- Joined: Sun Jun 09, 2019 10:40 pm
- Contact:
Re: A Case for Balancing Nuclear Power
Did you just try increasing the maximum temperature? I mean, the heat_buffer type doesn't have particular limits, and neither does the heat energy source on the boiler type, so there isn't any practical reason you couldn't do that. It'd be equivalent to the 500ºC steam in the steam engine, generating no value, unless you piped it to an upgraded steam consumer, but again, no particular limits on the types.Adamo wrote: ↑Thu Aug 22, 2019 2:41 pmI'd like to know what the official answer to this is supposed to be. I don't think I found an answer on the wiki, so if anyone knows where it is or knows the answer: please. Right now, my nuclear mod is pushing the steam temp to 970, the highest I could get without potentially breaking vanilla-compatible megareactors.
Re: A Case for Balancing Nuclear Power
Well, it's complicated. And I just remembered I moved all of those changes to the physics mod, instead of leaving them as part of the nuclear mod. But essentially, it worked out fine since I only needed to go up to 970 for steam-turbine input to keep things nornalized, but I was strongly suspicious that things might not remain fine if I started increasing max temp on the reactors. I know the prototype seems to allow it, but that's no guarantee it's going to be fine.slippycheeze wrote: ↑Thu Aug 22, 2019 5:33 pm Did you just try increasing the maximum temperature? I mean, the heat_buffer type doesn't have particular limits, and neither does the heat energy source on the boiler type, so there isn't any practical reason you couldn't do that. It'd be equivalent to the 500ºC steam in the steam engine, generating no value, unless you piped it to an upgraded steam consumer, but again, no particular limits on the types.
-
- Filter Inserter
- Posts: 587
- Joined: Sun Jun 09, 2019 10:40 pm
- Contact:
Re: A Case for Balancing Nuclear Power
You are not wrong, but I'd suggest practical experience suggests it'll work just fine -- at least inside reasonable ranges. You can put much, much larger than vanilla numbers into every other field related to energy, and mods routinely do. Ditto fluid boxes, though the larger size rarely achieves what people expect because of the nature of the fluid simulation.Adamo wrote: ↑Thu Aug 22, 2019 5:36 pmWell, it's complicated. And I just remembered I moved all of those changes to the physics mod, instead of leaving them as part of the nuclear mod. But essentially, it worked out fine since I only needed to go up to 970 for steam-turbine input to keep things nornalized, but I was strongly suspicious that things might not remain fine if I started increasing max temp on the reactors. I know the prototype seems to allow it, but that's no guarantee it's going to be fine.slippycheeze wrote: ↑Thu Aug 22, 2019 5:33 pm Did you just try increasing the maximum temperature? I mean, the heat_buffer type doesn't have particular limits, and neither does the heat energy source on the boiler type, so there isn't any practical reason you couldn't do that. It'd be equivalent to the 500ºC steam in the steam engine, generating no value, unless you piped it to an upgraded steam consumer, but again, no particular limits on the types.
Are you thinking about "C++ engine simulation problems" or just how it'd work with existing reactor setups? Because I thought the former, but on reflection, perhaps your concern isn't the engine breaking down (highly unlikely, IMO) but rather, players having trouble with the adjusted entries. (Especially given existing mods already do things like double or double-double the values in the entities to allow the same output with less on-map entities.)
Re: A Case for Balancing Nuclear Power
It's simply that the best practice, in my view, for making a mod, especially one that changes so many parts, is to avoid changing as much as possible, because eventually you will find an edge case. So I have not even tested this, because, in the end, I didn't need to raise the temperature to maintain compatibility with vanilla megareactor blueprints. But I'm curious about it and would like to know if anyone has.
Re: A Case for Balancing Nuclear Power
I looked at some other nuclear mods and it appears as if the reactor prototype does have a heat buffer with a settable max temperature in code. There's no "heat pump" entity so you can never make one heat buffer hotter than the reactor or other equivalent heat generator, but from my very brief and inexpert look, I don't see any reason why you couldn't make a reactor/exchanger/turbine set that went up to 10,000 degrees if you wanted. Although at that stage I think in real life you're stripping the water down into plasma...
ETA nah apparently plasma is much higher temp than that so you're good.
ETA nah apparently plasma is much higher temp than that so you're good.
Re: A Case for Balancing Nuclear Power
To be clear, I think we realize the prototype technically allows for it. The question, for me, is whether the simulation still runs well with more extreme temperatures. It may be that it doesn't have a problem, but, things can surprise you.
The boiler is already acting as a "heat pump" in the sense that it can put out steam at a higher temperature than it takes in, by, I am hoping, but haven't tested for sure, scaling the temperature in and temperature out by the specific_heat values of the boiler and the steam.
-
- Filter Inserter
- Posts: 587
- Joined: Sun Jun 09, 2019 10:40 pm
- Contact:
Re: A Case for Balancing Nuclear Power
I think that is a respectable and reasonable position, too, Adamo. Kinder than I am, when I think about changes, since I more take the view that if it breaks some design or whatever, I'll either wait out the bug fix from Wube, or they get to keep both broken parts. Not that I can release anything right now, dangit, but hey. Now I know your mods are safer to randomly drop inAdamo wrote: ↑Fri Aug 23, 2019 10:04 amTo be clear, I think we realize the prototype technically allows for it. The question, for me, is whether the simulation still runs well with more extreme temperatures. It may be that it doesn't have a problem, but, things can surprise you.
The boiler is already acting as a "heat pump" in the sense that it can put out steam at a higher temperature than it takes in, by, I am hoping, but haven't tested for sure, scaling the temperature in and temperature out by the specific_heat values of the boiler and the steam.
In terms of the heat simulation... I have a mental model that "heat" doesn't exist, only energy exists. I'm not sure it is strictly true, but it seems effective at predicting the behaviour of the system. That is, a "heat" property is just a store of energy, and behaves exactly identically to an accumulator or battery in terms of how it behaves. Just, y'know, a different type of wire connecting it from source to sink.
Given that, eg, heat is never lost in transfer, and temperature generally doesn't change without specific action (eg: transform to another energy form, use in a machine, add energy with a heat increasing device), I think this is more likely to give the right intuitive answers.
Anyway, beyond that, to answer McDuff with the details I omitted from my previous comment to you, Adamo, how it hangs together:
The specific_heat is relevant only in that it tells you how much energy movement is required to raise or lower the temperature of the device. For the reactor the relevant properties for the system are:
Code: Select all
consumption = "40MW",
heat_buffer = {
max_temperature = 1000,
specific_heat = "10MJ",
max_transfer = "10GW",
}
The specific_heat of the heat_buffer is how much energy is required to raise or lower the temperature by 1ºC, so in this case our 40MW input means we can raise the temperature by 4ºC per second while consuming fuel.
The max_temperature is just when it caps: if it would go above that temp because of input energy, it just throws away the extra heat. Otherwise the temperature rises, and the power is perfectly conserved in the form of heat energy. I'm pretty certain that a heat *generator* throws away extra heat, but a heat *consumer* caps and stops drawing heat. Like, maybe 95 percent sure, so energy loss only applies when the reactor (which is the only thing to consume fuel without work) is unable to send enough heat away. I'm not at all sure what sequence this happens in, so if the reactor was 999ºC, and attached devices could consume 3ºC of heat per second it'd be min(1000, 999+4-3)ºC afterwards, or if it'd be min(1000, 999+4)-3ºC afterwards. (I suspect the first, because Wube are kind, as a rule of thumb.)
Finally, max_transfer tells us what the limit of output is. Apparently, at 10GW cap, we can export 10,000MW of energy per second, or... 1,000ºC in a second, given 1ºC == 10MJ for this device, and J to W is just appending per-second.... so if something can consume 10GW of heat, it'll happily run a reactor down to 0ºC in a second.
Meanwhile, the heat-exchanger is a boiler, and has:
Code: Select all
energy_consumption = "10MW",
energy_source = {
type = "heat",
max_temperature = 1000,
specific_heat = "1MJ",
max_transfer = "2GW",
min_working_temperature = 500,
}
Meanwhile, on the way in ... max_transfer of heat is 2GW, so we can completely tap a reactor with 5 x heat-exchanger -- at that point they hit the 10GW output limit. Once the heat-exchanger has that 2GW of power in it applies it to the temperature it "owns", raising 1ºC for every specific_heat, or 1MJ, in. Which means it can go up... 20,000MJ, or 20,000ºC per second, I guess? Uh, probably not gonna be able to tap that one out.
I guess assuming you can supply water fast enough, and on the basis Wube are kind, you could move the 19,000MJ of energy out as steam from the device, subject to fluid system transfer limits. I'm gonna guess that Wube must be kind here, because otherwise this'd be really hard to use efficiently, and honestly, pretty slow at making steam. I don't /think/ the "optimal ratio" calculations support that. Yay, another proof of niceness.
Oh, and I didn't look at heat pipes, but I think they are a significant part of the limitations on power, and I didn't touch on the boost reactors get from proximity, which can push them up to 140MW (energy_consumption) and ... IDK what additional changes to the heat_buffer, if any, come with that.
Hope that helps you understand how to follow the properties through their behaviour, McDuff. In my experience, so long as your numbers are in the "safe integer-in-double" range all the way through the math, the simulation is pretty robust to whatever silly numbers you throw in. I do know that, eg, Krastorio doubles the numbers on a whole bunch of vanilla power entities around nuclear power (steam turbines, etc) so you get the same output energy with half the number of devices, and that works.
OTOH, their super-duper beacon did push things out past safe limits and cause ... issues with the simulation, so Adamo is right, you can't just assume it'll be safe to push numbers up to any level and have it work sensibly.
- BlueTemplar
- Smart Inserter
- Posts: 3234
- Joined: Fri Jun 08, 2018 2:16 pm
- Contact:
Re: A Case for Balancing Nuclear Power
AFAIK, in Factorio, "heat" in the heat-pipes, heat-exhangers, and reactors is represented by something like a Factorio-fluid (but simplified) ?slippycheeze wrote: ↑Fri Aug 23, 2019 2:09 pm [...]
In terms of the heat simulation... I have a mental model that "heat" doesn't exist, only energy exists. I'm not sure it is strictly true, but it seems effective at predicting the behaviour of the system. That is, a "heat" property is just a store of energy, and behaves exactly identically to an accumulator or battery in terms of how it behaves. Just, y'know, a different type of wire connecting it from source to sink.
Given that, eg, heat is never lost in transfer, and temperature generally doesn't change without specific action (eg: transform to another energy form, use in a machine, add energy with a heat increasing device), I think this is more likely to give the right intuitive answers.
[...]
Otherwise, if you were talking about real life, then heat indeed doesn't "really" "exist" :
http://www.av8n.com/physics/thermo/heat.html
John Denker wrote:The term “heat” is a confusing chimera. It is partly energy, partly entropy, partly temperature, and partly who-knows-what. It shows up in a variety of idiomatic expressions, some of which are useful, as discussed in section 17.2. However “heat” by itself is not particularly useful.
By itself, the word “heat” has at least six reasonable and widely-used but mutually-inconsistent technical meanings, as enumerated below. In addition there are innumerable nontechnical, metaphorical, jocular, and/or not-so-reasonable meanings. It is not worth arguing about the relative merits of these meanings, except to say that each has some merit. I observe that a typical thoughtful expert will use each of these meanings, depending on context. It would be nice to have a single, universally-accepted meaning, but I doubt that will happen anytime soon.
In some cases you can figure out the meaning from context. In other cases it is better to avoid the term “heat” altogether, and quantify something else instead (perhaps temperature, energy, and/or entropy).
BobDiggity (mod-scenario-pack)
Re: A Case for Balancing Nuclear Power
I am in agreement with your assessment. Note that in adamo physics, the temperature of the steam output by heat exchangers and max_input for steam-turbines is 970. I did this because after applying the efficiencies across each entity, I needed to increase the amount of energy the steam could hold to normalize everything so that it ultimately output the same amount of electrical power as the vanilla values give. To make this work, I had to also increase the heat pipe throughput and specific_heat and the iron pipe and pump sizes by the quotient of the efficiency for the system to be able to push through the energy within the footprint of a vanilla blueprint. This only becomes obvious with mega reactors. I have a running mega reactor, so I tested there that it works, but I'd like more people to test their mega reactors and let me know if theirs also still work. I think these findings agree with your assessment.
-
- Filter Inserter
- Posts: 587
- Joined: Sun Jun 09, 2019 10:40 pm
- Contact:
Re: A Case for Balancing Nuclear Power
The transfer mechanisms are much simplified: a heat ... uh, I guess "battery" is the best term I can figure out, as in, a "heat battery" is a thing that holds heat, like the heat output or input of a reactor, exchanger, heat-pipe, etc.BlueTemplar wrote: ↑Fri Aug 23, 2019 2:48 pmAFAIK, in Factorio, "heat" in the heat-pipes, heat-exhangers, and reactors is represented by something like a Factorio-fluid (but simplified) ?slippycheeze wrote: ↑Fri Aug 23, 2019 2:09 pm [...]
In terms of the heat simulation... I have a mental model that "heat" doesn't exist, only energy exists. I'm not sure it is strictly true, but it seems effective at predicting the behaviour of the system. That is, a "heat" property is just a store of energy, and behaves exactly identically to an accumulator or battery in terms of how it behaves. Just, y'know, a different type of wire connecting it from source to sink.
Given that, eg, heat is never lost in transfer, and temperature generally doesn't change without specific action (eg: transform to another energy form, use in a machine, add energy with a heat increasing device), I think this is more likely to give the right intuitive answers.
[...]
Anyway, a heat battery just directly transfers energy in the form of heat to the thing next to it. Each heat battery has a direction: you can't push heat back into it on the output channel, while you can on almost all fluid connections.
Fluid simulation has a "height" to the fluid box, and that strongly influences the transfer -- so heat battery mechanics are identical to "fluid in pipes", but not to fluid in pipes that connect to anything else. There is nothing like a heat "pump", just a process of equalizing temperature between things.
I think the real world is fundamentally uninteresting in the context of the game. This also informs my snarky comments when people call on "realism" to support something. I mean, they can prefer it, but I don't think it is anything but a vaguely useful guide to what intuition will be about game mechanics.BlueTemplar wrote: ↑Fri Aug 23, 2019 2:48 pm Otherwise, if you were talking about real life, then heat indeed doesn't "really" "exist" :
In Factorio "heat" in any meaning is, I think, something that doesn't exist, either. Only (the physics meanings of) energy and power (== energy over time) exist. Heat is just one of the ways energy is represented, and it exchanges as power, so it is identically equal to an accumulator represented in a different number.
Equivalently, the accumulator has a 5MJ buffer, and 300kW input/output channel, so is identical to a heat device with a specific_temperature 1MJ, max temperature 5ºC (assuming zero start), and 300kW transfer limit, when you think of power movement. Which also tells us that a heat exchange holds an enormous number of accumulators worth of power in the internal buffer, since that is 1000/5, or 200, accumulators worth of energy stored in that heat buffer before it caps out.
...and that in turn reminds me I should look at the efficiency of those electric boilers in Krastorio and see if the electricity to steam to electricity chain is efficient enough to make tanks of steam a better power store than accumulators when driven from solar. I think it probably is, despite the boiler being less than 100 percent efficient.
Re: A Case for Balancing Nuclear Power
In precise terms, any heat_buffer on an entity has its energy represented by the two values "temperature" and "specific_heat", the second of which is static, set at data phase. So in a sense, the temperature is an "energy", just scaled by that static constant, and so I would agree at least that comparing it to a chain of batteries is alright, but this also does indicate why you might use the pipe analogy as well, since it must "flow" down the line. In actuality, neither is precisely correct. Heat flow differs from fluid flow in that fluid flow depends on the base_level and height at each fluid_box, and then if they are equal, on the amount in the pipe, whereas heat flows always from higher temperature to lower temperature, and there is no analog to the height or base_level.
Re: A Case for Balancing Nuclear Power
I messed about with the heat mechanics a bit a while ago while I was trying to make a simplified/unified version of the "Solar Thermal" mod, which had too many tiers for me.
I may well reopen that mod and try a test reactor with a max temperature of 10,000 or something, see what happens. I know when you change the working temperature of turbines and steam engines that the power output scales up accordingly.
I may well reopen that mod and try a test reactor with a max temperature of 10,000 or something, see what happens. I know when you change the working temperature of turbines and steam engines that the power output scales up accordingly.
Re: A Case for Balancing Nuclear Power
I personally thing nuclear power is pretty good right now, it takes a really small footprint and produces a lot of expandable power. MY BIGGEST gripes with it is are...
1. That it requires so much water.
2. Pipe pressure is a huge issue with setting one up properly.
3. Underground pipes don't reach through 2 reactors
1. I tried to setup a train system to provide a nuclear power plant water and I could not fill it fast enough even with two trains going at once. This could be a sign of issues with water in trains needing to be buffed with larger tank size for water or reactors using a bit too much water... but in the end of the project I gave up and came to the understanding that I needed to have a pump per heat exchanger
2. With water needing to be piped in you need to have a offshore pretty close to get to the end of the exchangers. Also to move around steam the pressure doesn't balance well around all the exchangers and tanks.
3. Heat pipes cool off the longer away from the reactor they are. You generally want to build (explaing this in only one orientation to explain) the heat exchangers going north / south when you build the 2x# reactor east to west. If you wanted to build on both sides, you need water on both sides to have a perfectly balanced reactor.
1. That it requires so much water.
2. Pipe pressure is a huge issue with setting one up properly.
3. Underground pipes don't reach through 2 reactors
1. I tried to setup a train system to provide a nuclear power plant water and I could not fill it fast enough even with two trains going at once. This could be a sign of issues with water in trains needing to be buffed with larger tank size for water or reactors using a bit too much water... but in the end of the project I gave up and came to the understanding that I needed to have a pump per heat exchanger
2. With water needing to be piped in you need to have a offshore pretty close to get to the end of the exchangers. Also to move around steam the pressure doesn't balance well around all the exchangers and tanks.
3. Heat pipes cool off the longer away from the reactor they are. You generally want to build (explaing this in only one orientation to explain) the heat exchangers going north / south when you build the 2x# reactor east to west. If you wanted to build on both sides, you need water on both sides to have a perfectly balanced reactor.
Re: A Case for Balancing Nuclear Power
For a row of 16 heat exchangers (which you need per reactor in larger setups) you need 3 pumps. I have one between the reactor and heat exchangers and 2 on the outer end.
With trains that's something like one fluid wagon every 8 seconds per reactor. Impossible with just one or two short trains.
You can do terminal stops with bi-directional trains and lots of fluid wagons. They have a fixed with and pretty much lets you make the trains as long as you want to get a bigger water buffer. Or up to 6 parallel lines of train stops going along your row of reactors so you can unload 6 fluid wagons per reactor. Longer trains there just cover more reactors. You would be limited to 6 trains unloading in parallel.
But in both cases you want more trains. The further away the water is the more trains you need. You need the next train to be coming in as soon as one finished unloading and leaves.
With trains that's something like one fluid wagon every 8 seconds per reactor. Impossible with just one or two short trains.
You can do terminal stops with bi-directional trains and lots of fluid wagons. They have a fixed with and pretty much lets you make the trains as long as you want to get a bigger water buffer. Or up to 6 parallel lines of train stops going along your row of reactors so you can unload 6 fluid wagons per reactor. Longer trains there just cover more reactors. You would be limited to 6 trains unloading in parallel.
But in both cases you want more trains. The further away the water is the more trains you need. You need the next train to be coming in as soon as one finished unloading and leaves.