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