Source: https://www.emse.fr/~fortunier/cours/Continuum_Mechanics/poly.pdf