Add thermodynamic potentials

Not ready to be merged. Opening for comments/suggestions.
Agreed. Will change.