|
| 1 | +{ |
| 2 | + "cells": [ |
| 3 | + { |
| 4 | + "cell_type": "code", |
| 5 | + "execution_count": 1, |
| 6 | + "metadata": {}, |
| 7 | + "outputs": [], |
| 8 | + "source": [ |
| 9 | + "from ocpmodels.datasets import LmdbDataset\n", |
| 10 | + "import lmdb\n", |
| 11 | + "from ase import Atoms" |
| 12 | + ] |
| 13 | + }, |
| 14 | + { |
| 15 | + "cell_type": "code", |
| 16 | + "execution_count": 2, |
| 17 | + "metadata": {}, |
| 18 | + "outputs": [], |
| 19 | + "source": [ |
| 20 | + "slab_data_objs=LmdbDataset({\"src\": \"datasetss/slabs.lmdb\"})" |
| 21 | + ] |
| 22 | + }, |
| 23 | + { |
| 24 | + "cell_type": "code", |
| 25 | + "execution_count": 7, |
| 26 | + "metadata": {}, |
| 27 | + "outputs": [ |
| 28 | + { |
| 29 | + "data": { |
| 30 | + "text/plain": [ |
| 31 | + "Data(pos=[104, 3], cell=[1, 3, 3], atomic_numbers=[104], natoms=104, tags=[104], edge_index=[2, 4927], cell_offsets=[4927, 3], y=-869.1991577148438, force=[104, 3], fixed=[104], slab_formula='O72Ti32', unrelax_energy=-864.7914428710938, bulk_energy=-226.61505634, miller=[3], bulk_formula='O16Ti8')" |
| 32 | + ] |
| 33 | + }, |
| 34 | + "execution_count": 7, |
| 35 | + "metadata": {}, |
| 36 | + "output_type": "execute_result" |
| 37 | + } |
| 38 | + ], |
| 39 | + "source": [ |
| 40 | + "atom_idx=0 \n", |
| 41 | + "demo=slab_data_objs[atom_idx]\n", |
| 42 | + "demo" |
| 43 | + ] |
| 44 | + }, |
| 45 | + { |
| 46 | + "cell_type": "markdown", |
| 47 | + "metadata": {}, |
| 48 | + "source": [ |
| 49 | + "# Function for getting surface energy from a Data object" |
| 50 | + ] |
| 51 | + }, |
| 52 | + { |
| 53 | + "cell_type": "code", |
| 54 | + "execution_count": 19, |
| 55 | + "metadata": {}, |
| 56 | + "outputs": [], |
| 57 | + "source": [ |
| 58 | + "from pymatgen.analysis.surface_analysis import SlabEntry\n", |
| 59 | + "from pymatgen.entries.computed_entries import ComputedEntry\n", |
| 60 | + "from pymatgen.io.ase import AseAtomsAdaptor\n", |
| 61 | + "\n", |
| 62 | + "def get_surface_energy(dat):\n", |
| 63 | + " bulk_entry = ComputedEntry(dat.bulk_formula, dat.bulk_energy)\n", |
| 64 | + " gas_entry = ComputedEntry('O2', 2*-7.204) # the ref energy for O in OC20\n", |
| 65 | + " \n", |
| 66 | + " atoms=Atoms(dat.atomic_numbers,\n", |
| 67 | + " positions=dat.pos,\n", |
| 68 | + " tags=dat.tags,\n", |
| 69 | + " cell=dat.cell.squeeze(), pbc=True)\n", |
| 70 | + " \n", |
| 71 | + " slabentry = SlabEntry(AseAtomsAdaptor.get_structure(atoms), dat.y, dat.miller)\n", |
| 72 | + " return slabentry.surface_energy(bulk_entry, [gas_entry])" |
| 73 | + ] |
| 74 | + }, |
| 75 | + { |
| 76 | + "cell_type": "code", |
| 77 | + "execution_count": 18, |
| 78 | + "metadata": { |
| 79 | + "tags": [] |
| 80 | + }, |
| 81 | + "outputs": [ |
| 82 | + { |
| 83 | + "name": "stdout", |
| 84 | + "output_type": "stream", |
| 85 | + "text": [ |
| 86 | + "Ti4O9 TiO2 (1, 1, 1) 0.486508823034301 - 0.0410153310548295*delu_O\n", |
| 87 | + "Ti9O20 TiO2 (1, 1, 1) 0.450274798852927 - 0.0410153310548295*delu_O\n", |
| 88 | + "Ti8O17 TiO2 (1, 1, 1) 0.404413278395938 - 0.0205076655274147*delu_O\n", |
| 89 | + "Ti9O19 TiO2 (1, 1, 1) 0.416724743705242 - 0.0205076655274147*delu_O\n", |
| 90 | + "TiO2 TiO2 (1, 1, 1) 0.38411800535389684\n", |
| 91 | + "TiO2 TiO2 (1, 1, 1) 0.3677720348620239\n", |
| 92 | + "TiO2 TiO2 (1, 1, 1) 0.37070036027104436\n", |
| 93 | + "TiO2 TiO2 (1, 1, 1) 0.3745788867635387\n", |
| 94 | + "Ti10O19 TiO2 (1, 1, 1) 0.0205076655274147*delu_O + 0.445462215747588\n", |
| 95 | + "Ti9O17 TiO2 (1, 1, 1) 0.0205076655274147*delu_O + 0.400585568918097\n", |
| 96 | + "Ti5O9 TiO2 (1, 1, 1) 0.0410153310548295*delu_O + 0.472357140401416\n", |
| 97 | + "Ti9O16 TiO2 (1, 1, 1) 0.0410153310548295*delu_O + 0.444017802955972\n", |
| 98 | + "Ti4O9 TiO2 (1, 1, 0) 0.546207448328953 - 0.0489107017539134*delu_O\n", |
| 99 | + "Ti8O17 TiO2 (1, 1, 0) 0.449417328042306 - 0.0244553508769567*delu_O\n", |
| 100 | + "Ti8O17 TiO2 (1, 1, 0) 0.44118767856354 - 0.0244553508769567*delu_O\n", |
| 101 | + "Ti9O19 TiO2 (1, 1, 0) 0.492222603655402 - 0.0244553508769567*delu_O\n", |
| 102 | + "TiO2 TiO2 (1, 1, 0) 0.42297423266952894\n", |
| 103 | + "TiO2 TiO2 (1, 1, 0) 0.3821024961246957\n", |
| 104 | + "TiO2 TiO2 (1, 1, 0) 0.4096769123415225\n", |
| 105 | + "TiO2 TiO2 (1, 1, 0) 0.42916178479927325\n", |
| 106 | + "Ti10O19 TiO2 (1, 1, 0) 0.0244553508769567*delu_O + 0.472355188527271\n", |
| 107 | + "Ti10O19 TiO2 (1, 1, 0) 0.0244553508769567*delu_O + 0.466107013553458\n", |
| 108 | + "Ti9O17 TiO2 (1, 1, 0) 0.0244553508769567*delu_O + 0.454241846622795\n", |
| 109 | + "Ti5O9 TiO2 (1, 1, 0) 0.0489107017539134*delu_O + 0.528671103072817\n", |
| 110 | + "Ti9O19 TiO2 (1, 1, -1) 0.445676410149205 - 0.0221349356090043*delu_O\n", |
| 111 | + "Ti9O19 TiO2 (1, 1, -1) 0.451522902693637 - 0.0221349356090043*delu_O\n", |
| 112 | + "TiO2 TiO2 (1, 1, -1) 0.3594562344146164\n", |
| 113 | + "TiO2 TiO2 (1, 1, -1) 0.4066659017681955\n", |
| 114 | + "TiO2 TiO2 (1, 1, -1) 0.4265215299197349\n", |
| 115 | + "TiO2 TiO2 (1, 1, -1) 0.413633577146169\n", |
| 116 | + "Ti9O17 TiO2 (1, 1, -1) 0.0221349356090043*delu_O + 0.432247483548343\n", |
| 117 | + "Ti9O17 TiO2 (1, 1, -1) 0.0221349356090043*delu_O + 0.40899019700201\n", |
| 118 | + "Ti15O32 TiO2 (1, 0, 1) 0.586705295438452 - 0.0340802406084122*delu_O\n", |
| 119 | + "Ti15O32 TiO2 (1, 0, 1) 0.600576047663616 - 0.0340802406084122*delu_O\n", |
| 120 | + "TiO2 TiO2 (1, 0, 1) 0.5103686572006261\n", |
| 121 | + "TiO2 TiO2 (1, 0, 1) 0.4672545735158993\n", |
| 122 | + "TiO2 TiO2 (1, 0, 1) 0.4986365545317719\n", |
| 123 | + "TiO2 TiO2 (1, 0, 1) 0.5563709172177385\n", |
| 124 | + "Ti15O28 TiO2 (1, 0, 1) 0.0340802406084122*delu_O + 0.549230332269358\n", |
| 125 | + "Ti15O28 TiO2 (1, 0, 1) 0.0340802406084122*delu_O + 0.566247571552648\n", |
| 126 | + "Ti6O13 TiO2 (1, 0, 0) 0.506599989040615 - 0.0401238257066021*delu_O\n", |
| 127 | + "Ti6O13 TiO2 (1, 0, 0) 0.578858303657952 - 0.0401238257066021*delu_O\n", |
| 128 | + "Ti7O15 TiO2 (1, 0, 0) 0.680038398006931 - 0.0401238257066021*delu_O\n", |
| 129 | + "Ti7O15 TiO2 (1, 0, 0) 0.591349984105807 - 0.0401238257066021*delu_O\n", |
| 130 | + "TiO2 TiO2 (1, 0, 0) 0.5297788651195319\n", |
| 131 | + "TiO2 TiO2 (1, 0, 0) 0.5571264457875991\n", |
| 132 | + "Ti8O15 TiO2 (1, 0, 0) 0.0401238257066021*delu_O + 0.623025610762092\n", |
| 133 | + "Ti8O15 TiO2 (1, 0, 0) 0.0401238257066021*delu_O + 0.651810733281343\n", |
| 134 | + "Ti7O13 TiO2 (1, 0, 0) 0.0401238257066021*delu_O + 0.609176796113447\n", |
| 135 | + "Ti7O13 TiO2 (1, 0, 0) 0.0401238257066021*delu_O + 0.563493005870556\n", |
| 136 | + "Ti5O11 TiO2 (1, 0, -1) 0.57793941863426 - 0.0436757073661562*delu_O\n", |
| 137 | + "Ti10O21 TiO2 (1, 0, -1) 0.484324367917108 - 0.0218378536830781*delu_O\n", |
| 138 | + "Ti10O21 TiO2 (1, 0, -1) 0.486731987731329 - 0.0218378536830781*delu_O\n", |
| 139 | + "Ti11O23 TiO2 (1, 0, -1) 0.487101152912659 - 0.0218378536830781*delu_O\n", |
| 140 | + "TiO2 TiO2 (1, 0, -1) 0.45874548637045987\n", |
| 141 | + "TiO2 TiO2 (1, 0, -1) 0.49111795408103287\n", |
| 142 | + "Ti12O23 TiO2 (1, 0, -1) 0.0218378536830781*delu_O + 0.540261562866761\n", |
| 143 | + "Ti12O23 TiO2 (1, 0, -1) 0.0218378536830781*delu_O + 0.503619890728277\n", |
| 144 | + "Ti11O21 TiO2 (1, 0, -1) 0.0218378536830781*delu_O + 0.507712308528015\n", |
| 145 | + "Ti6O11 TiO2 (1, 0, -1) 0.0436757073661562*delu_O + 0.53241624639869\n", |
| 146 | + "Ti6O13 TiO2 (0, 1, 1) 0.46653771609867 - 0.0330964371616681*delu_O\n", |
| 147 | + "Ti18O37 TiO2 (0, 1, 1) 0.413222183895921 - 0.011032145720556*delu_O\n", |
| 148 | + "TiO2 TiO2 (0, 1, 1) 0.41527619029720686\n", |
| 149 | + "Ti20O39 TiO2 (0, 1, 1) 0.011032145720556*delu_O + 0.425592340064277\n", |
| 150 | + "Ti20O37 TiO2 (0, 1, 1) 0.0330964371616681*delu_O + 0.481269074658621\n", |
| 151 | + "TiO2 TiO2 (0, 1, 0) 0.35231647565033786\n", |
| 152 | + "Ti2O5 TiO2 (0, 0, 1) 0.503945021250956 - 0.0862807920604508*delu_O\n", |
| 153 | + "Ti4O9 TiO2 (0, 0, 1) 0.47568503556361 - 0.0431403960302254*delu_O\n", |
| 154 | + "Ti4O9 TiO2 (0, 0, 1) 0.481512043401433 - 0.0431403960302254*delu_O\n", |
| 155 | + "TiO2 TiO2 (0, 0, 1) 0.4098890016173229\n", |
| 156 | + "Ti6O11 TiO2 (0, 0, 1) 0.0431403960302254*delu_O + 0.522681399662592\n", |
| 157 | + "Ti6O11 TiO2 (0, 0, 1) 0.0431403960302254*delu_O + 0.543839081683764\n", |
| 158 | + "Ti3O5 TiO2 (0, 0, 1) 0.0862807920604508*delu_O + 0.695930649700783\n" |
| 159 | + ] |
| 160 | + } |
| 161 | + ], |
| 162 | + "source": [ |
| 163 | + "from pymatgen.core.composition import Composition\n", |
| 164 | + "for dat in slab_data_objs:\n", |
| 165 | + " print(Composition(dat.slab_formula).reduced_formula, \n", |
| 166 | + " Composition(dat.bulk_formula).reduced_formula, \n", |
| 167 | + " dat.miller, get_surface_energy(dat))" |
| 168 | + ] |
| 169 | + } |
| 170 | + ], |
| 171 | + "metadata": { |
| 172 | + "kernelspec": { |
| 173 | + "display_name": "gpustudy", |
| 174 | + "language": "python", |
| 175 | + "name": "python3" |
| 176 | + }, |
| 177 | + "language_info": { |
| 178 | + "codemirror_mode": { |
| 179 | + "name": "ipython", |
| 180 | + "version": 3 |
| 181 | + }, |
| 182 | + "file_extension": ".py", |
| 183 | + "mimetype": "text/x-python", |
| 184 | + "name": "python", |
| 185 | + "nbconvert_exporter": "python", |
| 186 | + "pygments_lexer": "ipython3", |
| 187 | + "version": "3.8.8" |
| 188 | + }, |
| 189 | + "vscode": { |
| 190 | + "interpreter": { |
| 191 | + "hash": "07482723249349ed54e2c7e6c4dc9f336a0ae8a59ea3de954cec4c2faf28691e" |
| 192 | + } |
| 193 | + } |
| 194 | + }, |
| 195 | + "nbformat": 4, |
| 196 | + "nbformat_minor": 4 |
| 197 | +} |
0 commit comments