fn.phase_diagram() is complete, tested, but still needs better docs