{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Voronoi tessellation to identify local structures" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Voronoi tessellation can be used for identification of local structure\n", "by counting the number of faces of the Voronoi polyhedra of an\n", "atom {cite}`Finney1970,Tanemura1977`. For each atom a vector $\\langle n_3~n_4~n_5~n_6 \\rangle$\n", "can be calculated where $n_3$ is the number of Voronoi faces of the\n", "associated Voronoi polyhedron with three vertices, $n_4$ is with four\n", "vertices and so on. Each perfect crystal structure such as a signature\n", "vector, for example, bcc can be identified by $\\langle 0~6~0~8 \\rangle$\n", "and fcc can be identified using $\\langle 0~12~0~0 \\rangle$. It is also a\n", "useful tool for identifying icosahedral structure which has the\n", "fingerprint $\\langle 0~0~12~0 \\rangle$. In pyscal, the voronoi vector\n", "can be calculated using,\n", "\n", "``` python\n", "import pyscal.core as pc\n", "sys = pc.System()\n", "sys.read_inputfile('conf.dump')\n", "sys.find_neighbors(method='voronoi')\n", "sys.calculate_vorovector()\n", "```\n", "\n", "The vector for each atom can be accessed using\n", "[Atom.vorovector](https://docs.pyscal.org/en/latest/pyscal.html#pyscal.catom.Atom.vorovector).\n", "Furthermore, the associated Voronoi volume of the polyhedron, which may\n", "be indicative of the local structure, is also automatically calculated\n", "when finding neighbors using\n", "[System.find_neighbors](https://docs.pyscal.org/en/latest/pyscal.html#pyscal.core.System.find_neighbors).\n", "This value for each atom can be accessed by\n", "[Atom.volume](https://docs.pyscal.org/en/latest/pyscal.html#pyscal.catom.Atom.volume). An averaged\n", "version of the volume, which is averaged over the neighbors of an atom\n", "can be accessed using [Atom.avg_volume](https://docs.pyscal.org/en/latest/pyscal.html#pyscal.catom.Atom.avg_volume).\n", "\n", "\n", "## References\n", "\n", "```{bibliography} ../references.bib\n", ":filter: docname in docnames\n", ":style: unsrt\n", "```" ] } ], "metadata": { "kernelspec": { "display_name": "py3", "language": "python", "name": "py3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.9.1" } }, "nbformat": 4, "nbformat_minor": 4 }