Each system and each interaction should expose an energy

This is so that we can calculate the total energy of simulation. This should be handled by the multisystem class who will then take care of recursively adding all the energies.

There are two options to expose the energies:

  • as a class component
  • as a class method

Also, there are two ways of accounting the interaction energies:

  • the system exposes a total energy, so the systems needs to sum all parcels, including the interactions.
  • the system exposes an "internal" energy only (e.g., the kinetic energy of a classical particle) that does include the interactions. In this case the framework must take care of summing the interactions' contributions

Finally, it is also necessary to decide how the energies are updated. The interaction energies should probably be updated at the same time as the interaction itself. As for the systems, this could be done at the end of a time-step or on demand, using the update_exposed_quantities method.

Edited by Micael Oliveira