{ "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 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.box = box\n", "sys.atoms = atoms" ] }, { "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": "iVBORw0KGgoAAAANSUhEUgAAAYUAAAEWCAYAAACJ0YulAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAAAsTAAALEwEAmpwYAAAXSklEQVR4nO3de7hddX3n8ffHRFQQBMwBkYsBCir62Gqj9dqhUiwqNx0cQ0WD0odHBy+MOgijo7UtLUUHq7VqqdqkqCDQKHihmieKeEEw3AmIocolEsnBCyKMYPQ7f+yVNZuTc8jOSfbe52S/X8+zn73Wb11+370g+3PWZa+VqkKSJICHDbsASdLMYShIklqGgiSpZShIklqGgiSpZShIklqGgvQQkjwxyVVJ7kny5iSPSvKFJHcnOW8I9SxO8jdbaF1/meRTW2Jd2noYCpp1kvx5khVJfpVkTZKLkjy/x2VvSfKnm9DdScDFVbV9VX0IOArYFXhsVb1iGuX3LMmxSb7Vzz6kiQwFzSpJ3gr8A/C3dL6c9wI+AhzRpy6fAKycMP6DqlrXp/6koTIUNGskeQzwV8AJVbW0qu6tqt9U1Req6n828zzo8EqSA5OsbobPohMiX2j2Mk5q2g9PsjLJL5JcnOTJTfvXgD8BPtzMfzbwbuCVzfhxk9T4l0nOS/Kp5pDTdUn2T3JKkrVJbk/you7PlOQTzR7Pj5P8TZI5TQ0fA57T9PWLrm52SvKlZv2XJdm3a33PTfK95vDW95I8t2va3km+0Sy3DJi3mf9JtBUyFDSbPAd4JPC56SxcVa8GbgMOq6pHV9XpSfYHzgZOBMaAL9MJjW2q6oXAN4E3NvMfTWcP5bPN+Cem6Oow4CxgJ+Aq4Ct0/q3tTifU/rlr3iXAOuD3gKcDLwL+oqpuBF4PXNr0tWPXMkcD723WfzNwKkCSnYEvAR8CHgucAXwpyWOb5T4DXEEnDP4aWLQJm08jwlDQbPJY4K4tfOjmlcCXqmpZVf0GeD/wKOC5D73YQ/pmVX2lqfM8OmFzWrP+c4D5SXZMsivwYuDEZq9nLfABYOFG1r+0qi5v1v9p4A+a9pcCq6rqrKpaV1VnA98HDkuyF/BM4H9X1f1VdQnwhc34jNpKzR12AdIm+CkwL8ncLRgMjwduXT9SVb9Lcjudv+qn686u4f9LJ8h+2zUO8Oim74cDa5Ksn/9hwO0bWf9Puobva9YFEz5L41Y6n+XxwM+r6t4J0/bcSF8aMe4paDa5FPg1cORDzHMvsG3X+OMmTJ94W+A76Jw8BiCdb+c9gR9Pu8re3Q7cD8yrqh2b1w5V9ZQpat2YB32Wxl50PssaOucitpswTXoQQ0GzRlXdTedE7z8lOTLJtkkenuTFSU5vZrsaeEmSnZM8js65gm53Avt0jZ8LvDTJQUkeDryNzhf1d/r5WQCqag3wVeD/JNkhycOS7Jvkv3TVukeSbXpc5ZeB/ZtLducmeSVwAPDFqroVWAG8N8k2zSW8h23hj6StgKGgWaWqzgDeCrwLGKfz1/Ybgc83s5wFXAPcQucL97MTVvF3wLuaK43eXlU3AccA/wjcReeL8rCqeqC/n6T1GmAb4Abg58D5wG7NtK/RuRz2J0nu2tiKquqnwKF0gu2ndH5jcWhVrV/2z4E/An4GvAf4ty33MbS1iA/ZkSSt556CJKllKEiSWoaCJKllKEiSWrP6x2vz5s2r+fPnD7sMSZpVrrjiiruqamyyabM6FObPn8+KFSuGXYYkzSpJJv7yveXhI0lSy1CQJLUMBUlSy1CQJLUMBUlSy1CQJLUMBUlSy1CQJLUMBUlSa1b/olkaJUvHFg60v5ePnzPQ/jQzuKcgSWoZCpKklqEgSWoZCpKklqEgSWoZCpKklqEgSWoZCpKklqEgSWoZCpKklqEgSWoZCpKklqEgSWp5l1RpI7w7qUZJ3/YUknwyydok13e1vS/J95Ncm+RzSXbsmnZKkpuT3JTkz/pVlyRpav08fLQYOGRC2zLgqVX1NOAHwCkASQ4AFgJPaZb5SJI5faxNkjSJvoVCVV0C/GxC21eral0z+l1gj2b4COCcqrq/qn4E3Aw8q1+1SZImN8wTza8DLmqGdwdu75q2ummTJA3QUEIhyTuBdcCn1zdNMltNsezxSVYkWTE+Pt6vEiVpJA08FJIsAg4FXlVV67/4VwN7ds22B3DHZMtX1ZlVtaCqFoyNjfW3WEkaMQMNhSSHAO8ADq+q+7omXQgsTPKIJHsD+wGXD7I2SVIff6eQ5GzgQGBektXAe+hcbfQIYFkSgO9W1euramWSc4Eb6BxWOqGqftuv2iRJk+tbKFTV0ZM0f+Ih5j8VOLVf9UiSNs7bXEiSWoaCJKllKEiSWoaCJKllKEiSWoaCJKllKEiSWoaCJKllKEiSWoaCJKllKEiSWoaCJKllKEiSWoaCJKllKEiSWoaCJKllKEiSWoaCJKllKEiSWoaCJKllKEiSWoaCJKllKEiSWn0LhSSfTLI2yfVdbTsnWZZkVfO+U9e0U5LcnOSmJH/Wr7okSVPr557CYuCQCW0nA8uraj9geTNOkgOAhcBTmmU+kmROH2uTJE2ib6FQVZcAP5vQfASwpBleAhzZ1X5OVd1fVT8Cbgae1a/aJEmTG/Q5hV2rag1A875L0747cHvXfKubtg0kOT7JiiQrxsfH+1qsJI2amXKiOZO01WQzVtWZVbWgqhaMjY31uSxJGi2DDoU7k+wG0LyvbdpXA3t2zbcHcMeAa5OkkTfoULgQWNQMLwIu6GpfmOQRSfYG9gMuH3BtkjTy5vZrxUnOBg4E5iVZDbwHOA04N8lxwG3AKwCqamWSc4EbgHXACVX1237VJkmaXN9CoaqOnmLSQVPMfypwar/qkSRt3Ew50SxJmgEMBUlSy1CQJLUMBUlSy1CQJLUMBUlSy1CQJLUMBUlSy1CQJLUMBUlSy1CQJLUMBUlSy1CQJLUMBUlSq2+3zpY2x9KxhQPt7+Xj5wy0P2mmck9BktQyFCRJLUNBktQyFCRJLUNBktQyFCRJLUNBktQaSigk+R9JVia5PsnZSR6ZZOcky5Ksat53GkZtkjTKBh4KSXYH3gwsqKqnAnOAhcDJwPKq2g9Y3oxLkgZoWIeP5gKPSjIX2Ba4AzgCWNJMXwIcOZzSJGl0DTwUqurHwPuB24A1wN1V9VVg16pa08yzBthlsuWTHJ9kRZIV4+PjgypbkkZCT6GQ5NAkWyRAmnMFRwB7A48HtktyTK/LV9WZVbWgqhaMjY1tiZIkSY1ev+gXAquSnJ7kyZvZ558CP6qq8ar6DbAUeC5wZ5LdAJr3tZvZjyRpE/UUClV1DPB04D+Bf01yaXMYZ/tp9Hkb8Owk2yYJcBBwI3AhsKiZZxFwwTTWLUnaDD0fEqqqXwL/DpwD7Aa8DLgyyZs2pcOqugw4H7gSuK6p4UzgNODgJKuAg5txSdIA9fQ8hSSHA68F9gXOAp5VVWuTbEvnr/x/3JROq+o9wHsmNN9PZ69B0gzn8y62Xr0+ZOco4ANVdUl3Y1Xdl+R1W74sSdIw9Hr4aM3EQEjy9wBVtXyLVyVJGopeQ+HgSdpevCULkSQN30MePkryBuC/A/smubZr0vbAt/tZmCRp8DZ2TuEzwEXA3/HgexHdU1U/61tVkqSh2FgoVFXdkuSEiROS7GwwSNLWpZc9hUOBK4AC0jWtgH36VJckaQgeMhSq6tDmfe/BlCNJGqZeb4j3vCTbNcPHJDkjyV79LU2SNGi9XpL6UeC+JL8PnATcSueXzZKkrUivobCuqorOLa8/WFUfpHNZqiRpK9LrbS7uSXIKcAzwx0nmAA/vX1mSpGHodU/hlXRuWHdcVf0E2B14X9+qkiQNRU97Ck0QnNE1fhvwb/0qSpI0HL1effTyJKuS3J3kl0nuSfLLfhcnSRqsXs8pnA4cVlU39rMYSdJw9XpO4U4DQZK2fr3uKaxI8lng83ROOANQVUv7UZQkaTh6DYUdgPuAF3W1FWAoSNJWpNerj17b70IkScPX69VH+ydZnuT6ZvxpSd7V39IkSYPW64nmfwFOAX4DUFXXAgv7VZQkaTh6DYVtq+ryCW3rtnQxkqTh6jUU7kqyL52TyyQ5Clgz3U6T7Jjk/CTfT3Jjkuck2TnJsuZHcsuS7DTd9UuSpqfXUDgB+GfgSUl+DJwIvH4z+v0g8B9V9STg94Eb6TwDenlV7Qcs58HPhJYkDcBDXn2U5K1do18Gvk4nSO4F/itd90PqVZIdgD8GjgWoqgeAB5IcARzYzLYEuBh4x6auX5I0fRvbU9i+eS0A3gDsBOxIZy/hgGn2uQ8wDvxrkquSfLx5qtuuVbUGoHnfZbKFkxyfZEWSFePj49MsQZI0mYcMhap6b1W9F5gHPKOq3l5VbwP+ENhjmn3OBZ4BfLSqnk5nr6PnQ0VVdWZVLaiqBWNjY9MsQZI0mV7PKewFPNA1/gAwf5p9rgZWV9Vlzfj5dELiziS7ATTva6e5fknSNPV6m4uzgMuTfI7OFUgvo3Pcf5NV1U+S3J7kiVV1E3AQcEPzWgSc1rxfMJ31S5Kmr9fbXJya5CLgBU3Ta6vqqs3o903Ap5NsA/wQeC2dvZZzkxwH3Aa8YjPWL0mahl73FKiqK4Ert0SnVXU1nZPXEx20JdYvSZqeXs8pSJJGgKEgSWoZCpKklqEgSWoZCpKklqEgSWoZCpKklqEgSWoZCpKklqEgSWoZCpKklqEgSWoZCpKklqEgSWoZCpKklqEgSWoZCpKklqEgSWoZCpKklqEgSWoZCpKklqEgSWoNLRSSzElyVZIvNuM7J1mWZFXzvtOwapOkUTXMPYW3ADd2jZ8MLK+q/YDlzbgkaYCGEgpJ9gBeCny8q/kIYEkzvAQ4csBlSdLImzukfv8BOAnYvqtt16paA1BVa5LsMtmCSY4HjgfYa6+9+lzm6Fk6tnBgfb18/JyB9SWpNwPfU0hyKLC2qq6YzvJVdWZVLaiqBWNjY1u4OkkabcPYU3gecHiSlwCPBHZI8ingziS7NXsJuwFrh1CbJI20ge8pVNUpVbVHVc0HFgJfq6pjgAuBRc1si4ALBl2bJI26mfQ7hdOAg5OsAg5uxiVJAzSsE80AVNXFwMXN8E+Bg4ZZjySNupm0pyBJGjJDQZLUMhQkSS1DQZLUMhQkSS1DQZLUMhQkSS1DQZLUMhQkSS1DQZLUMhQkSS1DQZLUMhQkSS1DQZLUMhQkSS1DQZLUMhQkSS1DQZLUMhQkSS1DQZLUMhQkSS1DQZLUGngoJNkzydeT3JhkZZK3NO07J1mWZFXzvtOga5OkUTeMPYV1wNuq6snAs4ETkhwAnAwsr6r9gOXNuCRpgOYOusOqWgOsaYbvSXIjsDtwBHBgM9sS4GLgHYOuT9LssnRs4cD6evn4OQPra1iGek4hyXzg6cBlwK5NYKwPjl2mWOb4JCuSrBgfHx9YrZI0CoYWCkkeDfw7cGJV/bLX5arqzKpaUFULxsbG+legJI2goYRCkofTCYRPV9XSpvnOJLs103cD1g6jNkkaZcO4+ijAJ4Abq+qMrkkXAoua4UXABYOuTZJG3cBPNAPPA14NXJfk6qbtfwGnAecmOQ64DXjFEGqTpJE2jKuPvgVkiskHDbIWSdKD+YtmSVLLUJAktQwFSVLLUJAktYZx9ZEmGOTP9GE0fqovaXrcU5AktQwFSVLLUJAktQwFSVLLUJAktQwFSVLLUJAktQwFSVLLUJAktQwFSVLLUJAktQwFSVLLUJAktQwFSVLLUJAktQwFSVJrpB+yM8iH2/hgG2nrtrU8LMs9BUlSa8aFQpJDktyU5OYkJw+7HkkaJTMqFJLMAf4JeDFwAHB0kgOGW5UkjY4ZFQrAs4Cbq+qHVfUAcA5wxJBrkqSRkaoadg2tJEcBh1TVXzTjrwb+qKre2DXP8cDxzegTgZsGXujMMQ+4a9hFzDBukw25TTY06tvkCVU1NtmEmXb1USZpe1BqVdWZwJmDKWdmS7KiqhYMu46ZxG2yIbfJhtwmU5tph49WA3t2je8B3DGkWiRp5My0UPgesF+SvZNsAywELhxyTZI0MmbU4aOqWpfkjcBXgDnAJ6tq5ZDLmsk8jLYht8mG3CYbcptMYUadaJYkDddMO3wkSRoiQ0GS1DIUZokkn0yyNsn1XW07J1mWZFXzvtMwaxy0KbbJ+5J8P8m1ST6XZMchljhwk22TrmlvT1JJ5g2jtmGZapskeVNzS52VSU4fVn0zjaEweywGDpnQdjKwvKr2A5Y346NkMRtuk2XAU6vqacAPgFMGXdSQLWbDbUKSPYGDgdsGXdAMsJgJ2yTJn9C5W8LTquopwPuHUNeMZCjMElV1CfCzCc1HAEua4SXAkYOsadgm2yZV9dWqWteMfpfOb11GxhT/nwB8ADiJCT8GHQVTbJM3AKdV1f3NPGsHXtgMZSjMbrtW1RqA5n2XIdcz07wOuGjYRQxbksOBH1fVNcOuZQbZH3hBksuSfCPJM4dd0Ewxo36nIG0pSd4JrAM+PexahinJtsA7gRcNu5YZZi6wE/Bs4JnAuUn2Ka/Rd09hlrszyW4Azbu7wECSRcChwKv8R86+wN7ANUluoXM47cokjxtqVcO3GlhaHZcDv6Nzk7yRZyjMbhcCi5rhRcAFQ6xlRkhyCPAO4PCqum/Y9QxbVV1XVbtU1fyqmk/ny/AZVfWTIZc2bJ8HXgiQZH9gG0b7rqktQ2GWSHI2cCnwxCSrkxwHnAYcnGQVnStLThtmjYM2xTb5MLA9sCzJ1Uk+NtQiB2yKbTLSptgmnwT2aS5TPQdY5F5lh7e5kCS13FOQJLUMBUlSy1CQJLUMBUlSy1CQJLUMBY2cJL9q3h+f5PzNWM+JzS+G149/eSbflTXJgUm+OOw6NLMZCtqqJZnyVi5VdUdVHbUZqz8RaEOhql5SVb/YjPXNaEnmDLsG9Z+hoBklyWuaZyFck+Sspu0JSZY37cuT7LWR9sVJzkjydeDvk+yd5NIk30vy1119zV9/j/0kxyZZmuQ/mudTnN4130eTrGjuu//epu3NwOOBrzf9kOSW9c8qSPLWJNc3rxO7+rsxyb806/pqkkdNsg0WJ/lQku8k+WGSo5r2B/2ln+TDSY7t6vtvm8+5IskzknwlyX8meX3X6ndonjNxQ5KPJXlYs/yLmmWvTHJekkd3rffdSb4FvGIz/tNqtqgqX75mxAt4CnATMK8Z37l5/wKdX5xC586nn99I+2Lgi8CcZvxC4DXN8AnAr5rh+cD1zfCxwA+BxwCPBG4F9pxQxxzgYjr34Ae4ZX2t3ePAHwLXAdsBjwZWAk9v+lsH/EEz/7nAMZNsh8XAeXT+aDsAuLlpPxD4Ytd8HwaO7er7Dc3wB4Br6fyyewxY27X8r4F9ms+yDDiqqfkSYLtmvncA7+5a70nD/n/D1+Be7iloJnkhcH5V3QVQVevvgf8c4DPN8FnA8zfSDnBeVf22GX4ecHbXfFNZXlV3V9WvgRuAJzTt/y3JlcBVdILrgI18jucDn6uqe6vqV8BS4AXNtB9V1dXN8BV0gmIyn6+q31XVDcCuG+lvvQub9+uAy6rqnqoaB37dda7j8qr6YbNtzm5qfXbzmb6d5Go699F6Qtd6P9tj/9oKeOtszSSht4fATDVPd/u9PS7T7f6u4d8Cc5PsDbwdeGZV/TzJYjp7Eg8lm9DHBoePJplv/frW8eBDvhPrWL/M7yYs/zv+/7/1iduhmvUvq6qjp6hl4rbUVsw9Bc0ky+n8Vf5Y6DyDumn/DrCwGX4V8K2NtE/07QnzbYod6Hwp3p1kV+DFXdPuoXOIZqJLgCOTbJtkO+BlwDc3sd/J3AockOQRSR4DHDSNdTyrOcfyMOCVdLbZd4HnJfk96DyDoblzqEaQoaAZo6pWAqcC30hyDXBGM+nNwGuTXAu8GnjLRtonegtwQpLv0TlnsCk1XUPnsNFKOnfW/HbX5DOBi9afaO5a5ko65wUuBy4DPl5VV21Kv1PUcjud8xDX0nl40HTWeSmdu+leD/yIzmGucTrnVM5utuV3gSdtbr2anbxLqiSp5Z6CJKllKEiSWoaCJKllKEiSWoaCJKllKEiSWoaCJKn1/wAKDP5xCYN+RQAAAABJRU5ErkJggg==\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": "pyscal-test", "language": "python", "name": "pyscal-test" }, "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.7" } }, "nbformat": 4, "nbformat_minor": 4 }