Jump to content

Geysers, dormancy and emission calculation


Recommended Posts

At face value, the calculation looks pretty straight forward.

5d8a715fdf3c8_dormanteruption.png.23168cdcfb63bb35d155b721e0b78727.png

[Mass rate] x [Eruption Period fraction] x [Active Period fraction]

302.5 x 70 / 9483 x 48 / 96.1 = 1.115Kg/s

This is the value calculated by the oni-assistant geyser calculator, this is how I've always thought of it and I've seen people do it this way in videos too.

I was watching a volcano start its dormancy period and something happened that I haven't noticed before.  It seemed to get stuck on 'Next Dormancy: 0s'.  It made me realise I didn't really understand how geysers worked.  I did some searching and couldn't find any posts on the forum explaining the life cycle of a geyser.

So I watched some geysers and noted the behaviour.

During the active period, the geyser has a 'Next Dormancy' counter that ticks down to zero.  When it reaches zero... nothing happens.  It stays at 'Next dormancy: 0s' and the eruption timer continues to count down.  After the eruption, it still says 'Next dormancy: 0s'.  It remains that way until... well, it seems to update at 22:30 for whatever reason, at which point the status updates to 'Dormant' and 'Next Dormancy...' is replaced with 'Next Activity...'.  (This may just have been a display caching issue, sometimes you need to click on a different entity and click back to have those info screens update).  The next activity timer lines up with multiples of the Active Period denominator (remember game starts on day 1, not day 0).  When the next activity timer reaches zero, the status immediately updates to 'Idle (erupts in ...)' and the eruption timer lines up with multiples of the Eruption Period denominator.

When you first start the game, all geysers are erupting.  This implies eruptions occur at the start of an eruption period, and the active period is at the beginning of an 'Active Period'.

The effect of all of this is that geysers get a bonus eruption each eruption period.  But they almost certainly lose one on every active period except the first due to the asynchronism between eruption periods and active periods.  It's possible the bonus eruption does not occur if an active period begins at the same time as an eruption period (as on the first day), I didn't test that because I'm less concerned with the first active period than subsequent ones.

The important thing is an eruption is never cut short due to dormancy.  This means the calculation we have been using is wrong and consistently undervalues the output quantity.

To correct for this we round up the active period to an even number of eruption periods. In the case above, the eruption period is 9483s, or 15.805 cycles.

Eruption period 1 ends at cycle +15.805

2 = 31.610

3 = 47.415

The volcano is still in its eruption period for the next half of a cycle, so it starts another entire eruption, ending some 15 days in to the theoretical dormancy period.

4 = 63.220

So the new yield calculation is:

302.5 x 70 / 9483 x 63.22 / 96.1 = 1.468Kg/s, 31% more than we previously thought.

6 hours ago, SpreadsheetGamr said:

At face value, the calculation looks pretty straight forward.

5d8a715fdf3c8_dormanteruption.png.23168cdcfb63bb35d155b721e0b78727.png

[Mass rate] x [Eruption Period fraction] x [Active Period fraction]

302.5 x 70 / 9483 x 48 / 96.1 = 1.115Kg/s

This is the value calculated by the oni-assistant geyser calculator, this is how I've always thought of it and I've seen people do it this way in videos too.

I was watching a volcano start its dormancy period and something happened that I haven't noticed before.  It seemed to get stuck on 'Next Dormancy: 0s'.  It made me realise I didn't really understand how geysers worked.  I did some searching and couldn't find any posts on the forum explaining the life cycle of a geyser.

So I watched some geysers and noted the behaviour.

During the active period, the geyser has a 'Next Dormancy' counter that ticks down to zero.  When it reaches zero... nothing happens.  It stays at 'Next dormancy: 0s' and the eruption timer continues to count down.  After the eruption, it still says 'Next dormancy: 0s'.  It remains that way until... well, it seems to update at 22:30 for whatever reason, at which point the status updates to 'Dormant' and 'Next Dormancy...' is replaced with 'Next Activity...'.  (This may just have been a display caching issue, sometimes you need to click on a different entity and click back to have those info screens update).  The next activity timer lines up with multiples of the Active Period denominator (remember game starts on day 1, not day 0).  When the next activity timer reaches zero, the status immediately updates to 'Idle (erupts in ...)' and the eruption timer lines up with multiples of the Eruption Period denominator.

When you first start the game, all geysers are erupting.  This implies eruptions occur at the start of an eruption period, and the active period is at the beginning of an 'Active Period'.

The effect of all of this is that geysers get a bonus eruption each eruption period.  But they almost certainly lose one on every active period except the first due to the asynchronism between eruption periods and active periods.  It's possible the bonus eruption does not occur if an active period begins at the same time as an eruption period (as on the first day), I didn't test that because I'm less concerned with the first active period than subsequent ones.

The important thing is an eruption is never cut short due to dormancy.  This means the calculation we have been using is wrong and consistently undervalues the output quantity.

To correct for this we round up the active period to an even number of eruption periods. In the case above, the eruption period is 9483s, or 15.805 cycles.

Eruption period 1 ends at cycle +15.805

2 = 31.610

3 = 47.415

The volcano is still in its eruption period for the next half of a cycle, so it starts another entire eruption, ending some 15 days in to the theoretical dormancy period.

4 = 63.220

So the new yield calculation is:

302.5 x 70 / 9483 x 63.22 / 96.1 = 1.468Kg/s, 31% more than we previously thought.

What people are using is a quick and dirty calculator, because the math is easier. I'm not opposed to updating it to be more accurate though.

4 hours ago, Chthonicone said:

What people are using is a quick and dirty calculator, because the math is easier.

Not even that. I use and recommend Cairath's mod. I don't get how to link it, but you can find it in the steamworkshop under "Geyser Calculated Average Output Tooltip"

On 9/24/2019 at 10:38 PM, Chthonicone said:

What people are using is a quick and dirty calculator, because the math is easier. I'm not opposed to updating it to be more accurate though.

In your case the gain is amazing because you're rounding a multiplier from 3.04 to 4 - a very good case, probably as close to a best case scenario as it gets. But it's a nice boost to all geysers for sure, if the basic premise is true. (My cool slush went from 1.62 to 1.64 kg/sec, as an example of a more realistic gain.)

The new formula (so you don't have to do it algorithmically) is:

average_yield = erupt_yield * erupt_for_in_cycles * roundup(active_for_in_cycles / erupt_period_in_cycles) / active_period_in_cycles

Note that you have to convert both eruption period-related figures from seconds to cycles (divide by 600) because one is a factor in roundup().

This assumes that the length of the dormancy period isn't extended when it starts late. This should be relatively easy to observe if you catch a geyser in the act.

Archived

This topic is now archived and is closed to further replies.

Please be aware that the content of this thread may be outdated and no longer applicable.

×
  • Create New...