heat flow (math!)
Posted: Sat Jun 24, 2017 10:47 am
0. Disclaimer
1. this thread is created by human, error is inevitable. please point out any mistake u find.2. this thread is messy and full of math. proceed at ur own risk.
3. this thread mainly consider throughput of heat pipes, ie: it assumes enough nuclear reactors, turbines, full electric load and stable condition.
1. Terminology and Graph
this thread will convert a setup into crappy mspaint art like below. 1. reactors will be represent as a green circle, and its temperature will always be 1000C.2. red line is heat pipes, red bracket number=length.
3. black line is heat pipes attached with exchanger. (7+7) means double row, (7+0) means single row.
4. green is the temperature difference(V) between the end points of pipes. (1000-900=100)
2. Bottleneck
assume stable condition, bottleneck happens if reactor is 1000C while some pipe/exchanger is <=500C.reactors, pipes, exchanger working temperature is between 500 and 1000, therefore the sum of temperature difference from reactor to each endpoints must be below V=1000-500=500 to prevent bottleneck.
the following formulae show how to estimate the temperature difference. the goal is to keep V < 500.
for red line with length = (r), V = (⅔i+1)r
for single row (i+0) black line, V = (i-1)(i+3) ≈ (i+1)²
for double row (i/2+i/2) black line, V = (i/2-1)(i+3) ≈ i²/2
where V = temperature difference, i = total exchanger down the line, r = length of pipes
*to be more precise, the 2nd and 3rd formula calculates the temperature difference between first and last input tile of exchangers.
some observation:
1. even when no load (i=0) is present, we still have V = (0+1)r = r, this means there is a hard limit in pipe length r=500.
2. higher heat flow (i) means lower pipe length (r)
3. double row is better than single row when minimizing V.
eg1: bottleneck or not? the top branch has temperature difference of V = 250+169 = 419 < 500
the bottom branch has temperature difference of V = 250+170+288 = 708 > 500
conclusion, the top branch is fine but the bottom branch is bottlenecked.
eg2: bottleneck or not? top branches: V = 262+128 = 390 < 500 (ok)
bottom branches: V = 262+132+128 = 522 > 500 (bottlenecked)
eg3: bottleneck or not? top branches: V = 262+200 = 462 < 500 (ok)
bottom branches: V = 262+102+72 = 436 < 500 (ok)
whats interesting is eg2 and eg3 both has equal amount of exchanger, by carefully arrange them, one can "minimize the maximum" V.
in general, branches nearer to reactor should have more exchanger.
3. Bonus
these are some of the findings that did not make it to the original post. they are too hard to explain and too mathy. i decided to put them here in case someone find them useful.1. heat capacity of pipes, exchangers, reactors are 1MJ/K, 1MJ/K, 10MJ/K respectively.
2. each tick, two adjacent entity transfer ΔQ heat from hotter entity to colder entity.
ΔQ = c * clip[(ΔT-1)/5 , {0,50/3}]
....= c * (ΔT-1)/5 when 1<=ΔT<=84.333
....= c * 16.667 when ΔT > 84.333
....= 0 when ΔT < 1
where c is the heat capacity of hotter entity and ΔT is the temperature difference.
3. if both are reactors, the transfer calculation is done 3 times per tick.
4. deducing temperature difference formula (V) from transfer formula (ΔQ) gives V = (5/6)i + 1, not (2/3)i + 1, the reason is the fact that pipes are not calculate and update simultaneously, but sequentially.
ΔQ forumla is the only empirical result, three of the V formulae are deduced from here using math. the deduction is left to reader as a challenge.