{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "## Calculating coordination numbers" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In this example, we will read in a configuration from an MD simulation and then calculate the coordination number distribution. \n", "This example assumes that you read the [basic example](https://pyscal.readthedocs.io/en/latest/examples.html#basic-examples)." ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import pyscal.core as pc\n", "import numpy as np\n", "import matplotlib.pyplot as plt" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Read in a file" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The first step is setting up a system. We can create atoms and simulation box using the ``pyscal.crystal_structures`` module. Let us start by importing the module." ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "import pyscal.crystal_structures as pcs" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "atoms, box = pcs.make_crystal('bcc', lattice_constant= 4.00, repetitions=[6,6,6])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The above function creates an bcc crystal of 6x6x6 unit cells with a lattice constant of 4.00 along with a simulation box that encloses the particles. We can then create a ``System`` and assign the atoms and box to it." ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "sys = pc.System()\n", "sys.atoms = atoms\n", "sys.box = box" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Calculating neighbors" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We start by calculating the neighbors of each atom in the system. There are two ways to do this, using a ``cutoff`` method and using a ``voronoi`` polyhedra method. We will try with both of them. First we try with cutoff system - which has three sub options. We will check each of them in detail." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Cutoff method" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Cutoff method takes cutoff distance value and finds all atoms within the cutoff distance of the host atom." ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "sys.find_neighbors(method='cutoff', cutoff=4.1)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now lets get all the atoms." ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "atoms = sys.atoms" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "let us try accessing the coordination number of an atom" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "14" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "atoms[0].coordination" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "As we would expect for a bcc type lattice, we see that the atom has 14 neighbors (8 in the first shell and 6 in the second). Lets try a more interesting example by reading in a bcc system with thermal vibrations. Thermal vibrations lead to distortion in atomic positions, and hence there will be a distribution of coordination numbers." ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [], "source": [ "sys = pc.System()\n", "sys.read_inputfile('conf.dump')\n", "sys.find_neighbors(method='cutoff', cutoff=3.6)\n", "atoms = sys.atoms" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can loop over all atoms and create a histogram of the results " ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [], "source": [ "coord = [atom.coordination for atom in atoms]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now lets plot and see the results" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Text(0.5, 1.0, 'Cutoff method')" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "nos, counts = np.unique(coord, return_counts=True)\n", "plt.bar(nos, counts, color=\"#AD1457\")\n", "plt.ylabel(\"density\")\n", "plt.xlabel(\"coordination number\")\n", "plt.title(\"Cutoff method\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Adaptive cutoff methods" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "``pyscal`` also has adaptive cutoff methods implemented. These methods remove the restriction on having the same cutoff. A distinct cutoff is selected for each atom during runtime. ``pyscal`` uses two distinct algorithms to do this - ``sann`` and ``adaptive``. Please check the [documentation](https://pyscal.readthedocs.io/en/latest/nearestneighbormethods.html) for a explanation of these algorithms. For the purpose of this example, we will use the `adaptive` algorithm." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "``adaptive algorithm``" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [], "source": [ "sys.find_neighbors(method='cutoff', cutoff='adaptive', padding=1.5)\n", "atoms = sys.atoms\n", "coord = [atom.coordination for atom in atoms]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now lets plot" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Text(0.5, 1.0, 'Cutoff adaptive method')" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "nos, counts = np.unique(coord, return_counts=True)\n", "plt.bar(nos, counts, color=\"#AD1457\")\n", "plt.ylabel(\"density\")\n", "plt.xlabel(\"coordination number\")\n", "plt.title(\"Cutoff adaptive method\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The adaptive method also gives similar results!" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Voronoi method" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Voronoi method calculates the voronoi polyhedra of all atoms. Any atom that shares a voronoi face area with the host atom are considered neighbors. Voronoi polyhedra is calculated using the [Voro++](http://math.lbl.gov/voro++/) code. However, you dont need to install this specifically as it is linked to pyscal." ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [], "source": [ "sys.find_neighbors(method='voronoi')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Once again, let us get all atoms and find their coordination" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [], "source": [ "atoms = sys.atoms\n", "coord = [atom.coordination for atom in atoms]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "And visualise the results" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Text(0.5, 1.0, 'Voronoi method')" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "nos, counts = np.unique(coord, return_counts=True)\n", "plt.bar(nos, counts, color=\"#AD1457\")\n", "plt.ylabel(\"density\")\n", "plt.xlabel(\"coordination number\")\n", "plt.title(\"Voronoi method\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Finally.." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "All methods find the coordination number, and the results are comparable. Cutoff method is very sensitive to the choice of cutoff radius, but voronoi method can slightly overestimate the neighbors due to thermal vibrations. " ] } ], "metadata": { "kernelspec": { "display_name": "lammps", "language": "python", "name": "lammps" }, "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.7.6" } }, "nbformat": 4, "nbformat_minor": 4 }