MauveCloud / Ic2ExpReactorPlanner

A planner for nuclear reactors in the popular Minecraft mod IndustrialCraft2 Experimental.
GNU General Public License v2.0
179 stars 30 forks source link

Sometimes slightly lower average vent cooling is displayed #77

Open KrisBigK opened 5 years ago

KrisBigK commented 5 years ago

Based on my observations and guesses, I think the presence of large amounts of heat exchangers used to transfer heat reduces average vent cooling displayed. I remember that you said average vent cooling is calculated with the first 20 sec of simulation I'm too lazy to dig this out, but it takes a while for the components to get slightly damaged so that heat exchangers can transfer heat at higher rates, thus vents vent at a higher (full) speed.

(this is the design that I was simulating when I initially noticed the problem. Theoretically the heat exchangers next to the adv. heat vent should each transfer heat at 36/s (maximum) to other components in order to protect the adv vent from overheating) image

erp=XOtKn69Rd0aZ7/1wo6sFPv5gXVswhYZcUEeqnUE/fvbUeZ1dgjZjgiwtS3E/HITIAQ==

(this is a more exaggerated example)

image

erp=Bc60qfr1XorS8bhfzxPgWCJcF7JRuYjbI/DIpKCreU7r1o8ksZW2eKR1VTc5cAE=

Here's my ideas for improvement: 1) For a reactor stable enough only use vent cooling data when it is stablized 2) The starting time to collect vent cooling data depends on how many heat exchangers are present and how many heat they transfer (something like y=ax+b)

As I 'm not sure exactly how this is calculated, I'm sorry if my ideas were actually already implemented.

MauveCloud commented 5 years ago

For a reactor stable enough only use vent cooling data when it is stablized

This is a lot less practical than you might think. I just output CSV data for the exaggerated design you came up with, and the vent cooling output doesn't seem to stabilize until reactor tick 4019. Also, I haven't checked whether this behavior matches the in-game behavior, but some of the exchangers have strange cycles: The top row seem to all eventually stabilize (though at different values). R1C0 mostly stays at 733 heat absorbed, but jumps to 805 for 2 seconds every 36 seconds. R1C4 mostly stays at 405 heat, but jumps to 477 with alternating delays of 8 and 28 seconds. R1C8 seems to following a weird hybrid reverse sawtooth function with major peaks of 112 heat every 36 seconds, and minor peaks of 72 heat that are 9 seconds behind. R2C0 mostly stays at 789 heat, but jumps to 861 for 2 seconds every 36 seconds. R2C2 goes between 702 heat for 7 seconds and 630 heat for 29 seconds. (I don't feel like going through the rest right now, sorry)

KrisBigK commented 5 years ago

For in-game visualization of actual vent cooling I tested the design with a fluid reactor while running the game at roughly 20x speed.

image

(the circled heat exchangers are the ones that don't have fluctuating damage after stabilization)

I actually observed that for the first few hundred ticks, there was no output at all. Then, the output was pulsed, and the pulse gets longer and longer until it stabilized.

For the starting tick to collect vent cooling data I got another idea:

component heating=a, max heat generated by fuel rods=b, amount of heat exchangers present=c starting tick to collect vent cooling data=y

y= k1 (a/b) + k2 c

whereas k1 and k2 are different constants

image