tick

fun tick()

Transfers energy between providers, consumers and buffers in four steps:

  1. Transfer energy from providers to consumers, giving an equal amount of energy to every consumer and taking an equal amount of energy from every provider, if possible.

  2. Transfer energy from buffers to consumers, giving an equal amount of energy to every consumer and taking an equal amount of energy from every buffer, if possible.

  3. Transfer energy from providers to buffers, giving an equal amount of energy to every buffer and taking an equal amount of energy from every provider, if possible.

  4. Balance the energy between buffers so that all buffers have the same percentage of energy filled.

Depending on the transferRate and amount of energy transferred in each step, later steps might not be executed.