Class defining a particular action to be performed on a set of atoms using an
arbitrary potential. Examples of such actions are summing the energy,
computing forces on atoms, determining collision times, etc.
Concrete subclasses define these actions through implementation of the
doCalculation(IAtomSet, IPotential) method, which should perform the
defined calculation on the atoms using the given potential.