https://courses.physics.illinois.edu/phys596/fa2016/Lectures/SWIPGradSchool2016.pdf