https://colab.ws/articles/10.1088%2F0953-8984%2F13%2F3%2F305