Add thermodynamic potentials

Not ready to be merged. Opening for comments/suggestions.
Give me time :P