{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "### Instruction\n", "1. This tutorial explain how to use calc_barriers wrapper\n", "2. calc_barriers is high level wrapeer used for calculation of migration barriers. \n", "3. The calculations are performed by executing the same command for several times.\n", "#### First run\n", "Calculation of equillibrium lattice constants\n", "#### Second run\n", "Construction of supercell based on optimized unit cell, and additional relaxation of atomic positions\n", "#### Third run\n", "Calculation of migration barrier using obtained supercell\n", "\n", "params - special dictionary\n", " 'jmol' -{} - to save path as png\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Import libraries" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import sys\n", "sys.path.extend(['/home/aksenov/Simulation_wrapper/siman'])\n", "import header\n", "from calc_manage import add, res\n", "from database import write_database, read_database\n", "from set_functions import read_vasp_sets\n", "from calc_manage import smart_structure_read\n", "from SSHTools import SSHTools\n", "from project_funcs import calc_barriers\n", "%matplotlib inline" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "###Set configuration parameters" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{'static': ,\n", " 'ion': ,\n", " 'dos': ,\n", " 'band': ,\n", " 'opt': ,\n", " 'cell': }" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "header.ssh_object = SSHTools()\n", "header.ssh_object.setup(user=\"aksenov\",host=\"10.30.16.62\",pkey=\"/home/aksenov/.ssh/id_rsa\")\n", "\n", "header.PATH2PROJECT = 'barriers' # path to project relative to your home folder on cluster\n", "header.PATH2POTENTIALS = '/home/aksenov/scientific_projects/PAW_PBE_VASP' #path to VASP POTENTIALS\n", "header.PATH2NEBMAKE = '~/Simulation_wrapper/vts/nebmake.pl' # add path to nebmake in your project_conf.py\n", "\n", "read_database()\n", "header.varset['static'].potdir = {29:'Cu_new', 3:'Li'} #subfolders with required potentials\n", "read_vasp_sets([\n", "('ion', 'static', {'ISIF':2, 'IBRION':1, 'NSW':20, 'EDIFFG':-0.025}, ), # relax only ions\n", "('cell', 'static', {'ISIF':4, 'IBRION':1, 'NSW':20, 'EDIFFG':-0.025},)]) #relax everything except volume\n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Starting calculation" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Choose starting calculation.\n", "For example 2-atom cell of fcc Cu" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "-- Attention!, cluster None is not found, using default cee \n", "\n", "-- check_kpoints(): Kpoint mesh is: [8, 8, 8] \n", "\n", "-- check_kpoints(): The actual k-spacings are [ 0.22 0.22 0.22] \n", "\n", "-- POSCAR was written to /home/aksenov/Simulation_wrapper/siman/tutorials/Cu//Cu2.static/1.POSCAR \n", "\n", "-- Attention! ngkpt = [8, 8, 8] is adopted from struct_des which you provided for it Cu2 and kspacing = 0.235 \n", "\n", "\n", "Calculation ('Cu2', 'static', 1) successfully created\n", "\n", " \n", "\n" ] }, { "data": { "text/plain": [ "'Cu2'" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "add('Cu2', 'static', 1, input_geo_file = 'Cu/Cu2fcc.geo', it_folder = 'Cu')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "###Configuration dictionary\n", "The configuration dictionary should be created" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "pd = {\n", "'id':('Cu2', 'static', 1), # starting calculation\n", "'el':'Li', # Element to move\n", "'itfolder':'Cu/', # Workding directory \n", "'main_set':'ion', # This set is used for supercell calculation\n", "'scaling_set':'ion', # This set is used for determining lattice parameters\n", "'neb_set':'ion', # This set is used for calculation of migration barrier\n", "'scale_region':(-4, 4), # range of unit cell uniform deformation in %\n", "'ortho':[7,7,7], # Target sizes of supercell in A\n", "'r_impurity':1.2, # radius of searchable void\n", "'images':5, # number of images in NEB calculation\n", "'start_pos':0, # starting position for NEB; offered by the wrapper\n", "'end_pos':1, # final position for NEB; offered by the wrapper\n", "'readfiles':1, # read OUTCAR files\n", "}" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 1. Unit cell optimization " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "First argument should be normal\n", "\n", "Second and third arguments are moving element \n", "up - update unit cell optimization\n", "upA - update supercell calculation\n", "upC - update neb calculation" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "-- optimize_cell(): scale_region changed from (-4, 4) to (-4, 4) \n", "\n", "-- Scale region is (-4, 4) \n", "\n", "-- Attention!, cluster None is not found, using default cee \n", "\n", "-- add_loop_scale(): Preparing scale calculation ... \n", "\n", "-- inherit_ngkpt(): the k-grid from Cu2 was inherited to Cu2.su \n", "\n", "-- File xyz/Cu2.static.1.init_used_for_scaling.xyz was written \n", "\n", "-- Scale_region is (-4, 4) \n", "\n", "Scales are [-4. -2.66666667 -1.33333333 0. 1.33333333 2.66666667\n", " 4. ] \n", "\n", "-- Warning! File ./Cu/scaled//Cu2.su/Cu2.su.auto_created_scaled_image.1.geo was replaced \n", "\n", "-- File xyz/Cu2.su.1.xyz was written \n", "\n", "-- Warning! File ./Cu/scaled//Cu2.su/Cu2.su.auto_created_scaled_image.2.geo was replaced \n", "\n", "-- File xyz/Cu2.su.2.xyz was written \n", "\n", "-- Warning! File ./Cu/scaled//Cu2.su/Cu2.su.auto_created_scaled_image.3.geo was replaced \n", "\n", "-- File xyz/Cu2.su.3.xyz was written \n", "\n", "-- Warning! File ./Cu/scaled//Cu2.su/Cu2.su.auto_created_scaled_image.4.geo was replaced \n", "\n", "-- File xyz/Cu2.su.4.xyz was written \n", "\n", "-- Warning! File ./Cu/scaled//Cu2.su/Cu2.su.auto_created_scaled_image.5.geo was replaced \n", "\n", "-- File xyz/Cu2.su.5.xyz was written \n", "\n", "-- Warning! File ./Cu/scaled//Cu2.su/Cu2.su.auto_created_scaled_image.6.geo was replaced \n", "\n", "-- File xyz/Cu2.su.6.xyz was written \n", "\n", "-- Warning! File ./Cu/scaled//Cu2.su/Cu2.su.auto_created_scaled_image.7.geo was replaced \n", "\n", "-- File xyz/Cu2.su.7.xyz was written \n", "\n", "-- 7 scale images have been created. \n", "\n", "-- check_kpoints(): Kpoint mesh is: [8, 8, 8] \n", "\n", "-- check_kpoints(): The actual k-spacings are [ 0.23 0.23 0.23] \n", "\n", "-- POSCAR was written to /home/aksenov/Simulation_wrapper/siman/tutorials/Cu/scaled///Cu2.su.ion/1.POSCAR \n", "\n", "\n", "Calculation ('Cu2.su', 'ion', 1) successfully created\n", "\n", " \n", "\n", "-- check_kpoints(): Kpoint mesh is: [8, 8, 8] \n", "\n", "-- check_kpoints(): The actual k-spacings are [ 0.22 0.22 0.22] \n", "\n", "-- POSCAR was written to /home/aksenov/Simulation_wrapper/siman/tutorials/Cu/scaled///Cu2.su.ion/2.POSCAR \n", "\n", "\n", "Calculation ('Cu2.su', 'ion', 2) successfully created\n", "\n", " \n", "\n", "-- check_kpoints(): Kpoint mesh is: [8, 8, 8] \n", "\n", "-- check_kpoints(): The actual k-spacings are [ 0.22 0.22 0.22] \n", "\n", "-- POSCAR was written to /home/aksenov/Simulation_wrapper/siman/tutorials/Cu/scaled///Cu2.su.ion/3.POSCAR \n", "\n", "\n", "Calculation ('Cu2.su', 'ion', 3) successfully created\n", "\n", " \n", "\n", "-- check_kpoints(): Kpoint mesh is: [8, 8, 8] \n", "\n", "-- check_kpoints(): The actual k-spacings are [ 0.22 0.22 0.22] \n", "\n", "-- POSCAR was written to /home/aksenov/Simulation_wrapper/siman/tutorials/Cu/scaled///Cu2.su.ion/4.POSCAR \n", "\n", "\n", "Calculation ('Cu2.su', 'ion', 4) successfully created\n", "\n", " \n", "\n", "-- check_kpoints(): Kpoint mesh is: [8, 8, 8] \n", "\n", "-- check_kpoints(): The actual k-spacings are [ 0.21 0.21 0.21] \n", "\n", "-- POSCAR was written to /home/aksenov/Simulation_wrapper/siman/tutorials/Cu/scaled///Cu2.su.ion/5.POSCAR \n", "\n", "\n", "Calculation ('Cu2.su', 'ion', 5) successfully created\n", "\n", " \n", "\n", "-- check_kpoints(): Kpoint mesh is: [8, 8, 8] \n", "\n", "-- check_kpoints(): The actual k-spacings are [ 0.21 0.21 0.21] \n", "\n", "-- POSCAR was written to /home/aksenov/Simulation_wrapper/siman/tutorials/Cu/scaled///Cu2.su.ion/6.POSCAR \n", "\n", "\n", "Calculation ('Cu2.su', 'ion', 6) successfully created\n", "\n", " \n", "\n", "-- check_kpoints(): Kpoint mesh is: [8, 8, 8] \n", "\n", "-- check_kpoints(): The actual k-spacings are [ 0.21 0.21 0.21] \n", "\n", "-- POSCAR was written to /home/aksenov/Simulation_wrapper/siman/tutorials/Cu/scaled///Cu2.su.ion/7.POSCAR \n", "\n", "-- Attention! ngkpt = [8, 8, 8] is adopted from struct_des which you provided for it Cu2.su and kspacing = 0.235 \n", "\n", "\n", "Calculation ('Cu2.su', 'ion', 7) successfully created\n", "\n", " \n", "\n", "JOBID PARTITION NAME USER ST TIME NODES NODELIST(REASON)\n", " 193160 AMG LiNiO2.r aboev R 4:52:15 1 node-amg12\n", " 193156 AMG NaNiO2.r aboev R 6:35:50 1 node-amg08\n", " 193152 AMG NaCoO2.r aboev R 6:59:03 1 node-amg04\n", " 193151 AMG NaCoO2.r aboev R 7:06:18 1 node-amg03\n", " 193150 AMG LiCoO2.r aboev R 7:24:29 1 node-amg02\n", " 193144 AMG Cus15oct dpoletae R 17:29:29 1 node-amg06\n", " 193145 AMG Cus15tet dpoletae R 17:29:29 1 node-amg07\n", " 192142 AMG NaVOPOF. aksenov R 2-02:10:30 1 node-amg09\n", "Submitted batch job 193165\n", " JOBID PARTITION NAME USER ST TIME NODES NODELIST(REASON)\n", " 193165 AMG Cu2.su.i aksenov PD 0:00 1 (None)\n", " 193160 AMG LiNiO2.r aboev R 4:52:15 1 node-amg12\n", " 193156 AMG NaNiO2.r aboev R 6:35:50 1 node-amg08\n", " 193152 AMG NaCoO2.r aboev R 6:59:03 1 node-amg04\n", " 193151 AMG NaCoO2.r aboev R 7:06:18 1 node-amg03\n", " 193150 AMG LiCoO2.r aboev R 7:24:29 1 node-amg02\n", " 193144 AMG Cus15oct dpoletae R 17:29:29 1 node-amg06\n", " 193145 AMG Cus15tet dpoletae R 17:29:29 1 node-amg07\n", " 192142 AMG NaVOPOF. aksenov R 2-02:10:30 1 node-amg09 \n", "\n", "-- To read results use res_loop('Cu2.su', ['ion'], [1, 2, 3, 4, 5, 6, 7], show = 'fo' ) # , on 2018-08-09 ; possible options for show: fit, fo, fop, en, mag, magp, smag, maga, occ, occ1, mep, mepp \n", "\n" ] }, { "data": { "text/plain": [ "[{'vol': 0.001,\n", " 'id': ('', '', 1),\n", " 'proto': 'XNone',\n", " 'DS': 'None',\n", " 'ion': 'Cu2',\n", " 'name': 'Cu2',\n", " 'x': '100%'}]" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "calc_barriers('normal', 'Li', 'Li', show_fit = 0, up = 1, upA = 0, upC = 0, param_dic = pd, add_loop_dic = {'run':1})" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 2. Supercell construction" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "After the optimization is finished, run the same command once again, it will show the fit and construct the supercell." ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "-- optimize_cell(): scale_region changed from (-4, 4) to (-4, 4) \n", "\n", "-- name | energy(eV)| Vector lenghts (A) | Stresses (MPa) | N MD, N SCF \n", "-- db['Cu2.su.ion.100'] | -14.9034 |3.64;3.64;3.64| -608,-608,-608 | 1,11, 11 \n", "\n", "\n", "Max. F. tot (meV/A) = \n", "[0]; \n", "\n", "-- name | energy(eV)| Vector lenghts (A) | Stresses (MPa) | N MD, N SCF \n", "-- db['Cu2.su.ion.1'] | -14.5062 |3.48;3.48;3.48| 24092,24092,24092 | 1,11, 11 \n", "\n", "\n", "Max. F. tot (meV/A) = \n", "[0]; \n", "\n", "-- db['Cu2.su.ion.2'] | -14.7272 |3.53;3.53;3.53| 14694,14694,14694 | 1,11, 11 \n", "\n", "\n", "Max. F. tot (meV/A) = \n", "[0]; \n", "\n", "-- db['Cu2.su.ion.3'] | -14.8564 |3.58;3.58;3.58| 6809,6809,6809 | 1,11, 11 \n", "\n", "\n", "Max. F. tot (meV/A) = \n", "[0]; \n", "\n", "-- db['Cu2.su.ion.4'] | -14.9020 |3.63;3.63;3.63| 327,327,327 | 1,11, 11 \n", "\n", "\n", "Max. F. tot (meV/A) = \n", "[0]; \n", "\n", "-- db['Cu2.su.ion.5'] | -14.8819 |3.68;3.68;3.68| -4827,-4827,-4827 | 1,11, 11 \n", "\n", "\n", "Max. F. tot (meV/A) = \n", "[0]; \n", "\n", "-- db['Cu2.su.ion.6'] | -14.8032 |3.73;3.73;3.73| -8917,-8917,-8917 | 1,11, 11 \n", "\n", "\n", "Max. F. tot (meV/A) = \n", "[0]; \n", "\n", "-- db['Cu2.su.ion.7'] | -14.6751 |3.77;3.77;3.77|-12113,-12113,-12113 | 1,11, 11 \n", "\n", "\n", "Max. F. tot (meV/A) = \n", "[0]; \n", "\n", "-- db['Cu2.su.ion.100'] | -14.9034 |3.64;3.64;3.64| -608,-608,-608 | 1,11, 11 \n", "alpha, energy: 90.00, -14.506\n", "alpha, energy: 90.00, -14.727\n", "alpha, energy: 90.00, -14.856\n", "alpha, energy: 90.00, -14.902\n", "alpha, energy: 90.00, -14.882\n", "alpha, energy: 90.00, -14.803\n", "alpha, energy: 90.00, -14.675\n", "alpha, energy: 90.00, -14.903\n", "-- Image saved to figs/angle.eps \n", "\n", "\n", " v0 = 48.15578442706452 A^3\n", " a0 = 3.6381685939450112 A\n", " E0 = -14.903739995004543 eV\n", " B = 0.8676314600033438 eV/A^3 \n", "\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "-- fit results are saved in figs/Cu2.su.ion.100.png \n", "\n", "-- Attention!, cluster None is not found, using default cee \n", "\n", "-- inherit_icalc(): starting supercell mode ... \n", "\n", "-- Calculating mul_matrix for ortho: [7, 7, 7] \n", "\n", "mul_matrix_float:\n", " [[ 1.92415477 0. 0. ]\n", " [ 0. 1.92415477 0. ]\n", " [ 0. 0. 1.92415477]] \n", "mul_matrix:\n", " [[2 0 0]\n", " [0 2 0]\n", " [0 0 2]] \n", "Old vectors (rprimd):\n", " [[ 3.6 0. 0. ]\n", " [ 0. 3.6 0. ]\n", " [ 0. 0. 3.6]] \n", "New vectors (rprimd) of supercell:\n", " [[ 7.3 0. 0. ]\n", " [ 0. 7.3 0. ]\n", " [ 0. 0. 7.3]] \n", "The supercell should contain 32.0 atoms ... \n", " -- OK \n", "\n", "-- Warning! File ./Cu/scaled//super//Cu2.su.s7/Cu2.su.s7.inherit.supercell.100.geo was replaced \n", "\n", "-- File xyz/Cu2.su.ion.100.end_supercell.xyz was written \n", "\n", "-- check_kpoints(): Kpoint mesh is: [4, 4, 4] \n", "\n", "-- check_kpoints(): The actual k-spacings are [ 0.22 0.22 0.22] \n", "\n", "-- POSCAR was written to /home/aksenov/Simulation_wrapper/siman/tutorials/Cu/scaled//super///Cu2.su.s7.ion/100.POSCAR \n", "\n", "-- Attention! ngkpt = [4, 4, 4] is adopted from struct_des which you provided for it Cu2.su.s7 and kspacing = 0.235 \n", "\n", "\n", "Calculation ('Cu2.su.s7', 'ion', 100) successfully created\n", "\n", " \n", "\n", "JOBID PARTITION NAME USER ST TIME NODES NODELIST(REASON)\n", " 193160 AMG LiNiO2.r aboev R 5:30:17 1 node-amg12\n", " 193156 AMG NaNiO2.r aboev R 7:13:52 1 node-amg08\n", " 193152 AMG NaCoO2.r aboev R 7:37:05 1 node-amg04\n", " 193151 AMG NaCoO2.r aboev R 7:44:20 1 node-amg03\n", " 193150 AMG LiCoO2.r aboev R 8:02:31 1 node-amg02\n", " 193144 AMG Cus15oct dpoletae R 18:07:31 1 node-amg06\n", " 193145 AMG Cus15tet dpoletae R 18:07:31 1 node-amg07\n", " 192142 AMG NaVOPOF. aksenov R 2-02:48:32 1 node-amg09\n", "Submitted batch job 193166\n", " JOBID PARTITION NAME USER ST TIME NODES NODELIST(REASON)\n", " 193166 AMG Cu2.su.s aksenov PD 0:00 1 (None)\n", " 193160 AMG LiNiO2.r aboev R 5:30:17 1 node-amg12\n", " 193156 AMG NaNiO2.r aboev R 7:13:52 1 node-amg08\n", " 193152 AMG NaCoO2.r aboev R 7:37:05 1 node-amg04\n", " 193151 AMG NaCoO2.r aboev R 7:44:20 1 node-amg03\n", " 193150 AMG LiCoO2.r aboev R 8:02:31 1 node-amg02\n", " 193144 AMG Cus15oct dpoletae R 18:07:31 1 node-amg06\n", " 193145 AMG Cus15tet dpoletae R 18:07:31 1 node-amg07\n", " 192142 AMG NaVOPOF. aksenov R 2-02:48:32 1 node-amg09 \n", "\n", "-- To read results use res_loop('Cu2.su.s7', ['ion'], [100], show = 'fo' ) # , on 2018-08-09 ; possible options for show: fit, fo, fop, en, mag, magp, smag, maga, occ, occ1, mep, mepp \n", "\n" ] }, { "data": { "text/plain": [ "[{'vol': 48.15,\n", " 'id': ('Cu2.su', 'ion', 100),\n", " 'proto': 'XNone',\n", " 'B': 139.01017725881573,\n", " 'DS': 'None',\n", " 'ion': 'Cu2',\n", " 'name': 'Cu2',\n", " 'x': '100%'}]" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "calc_barriers('normal', 'Li', 'Li', show_fit = 1, up = 0, upA = 0, upC = 0, param_dic = pd, add_loop_dic = {'run':1})" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "###3. Read supercell and start NEB calculation using the same calculation\n", "This step uses *add_neb* subroutine from neb.py\n", "To choose different paths change \n", "pd['start_pos'] and \n", "pd['end_pos'] values\n", "\n", "The command suggest you possible values of initial and final positions, see below. \n", "If you want to study migration of substitution atom, then\n", "use additional arguments:" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "pd['el'] = 'Cu' # Cu atom is chosen for moving\n", "pd['i_atom_to_move'] = 1 # number of atom to move\n", "pd['rep_moving_atom'] = 'Li' # replace moving atom with Li\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "###3.1 Migration of substitution atom" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "-- optimize_cell(): scale_region changed from (-4, 4) to (-4, 4) \n", "\n", "-- name | energy(eV)| Vector lenghts (A) | Stresses (MPa) | N MD, N SCF \n", "-- db['Cu2.su.ion.100'] | -14.9034 |3.64;3.64;3.64| -608,-608,-608 | 1,11, 11 \n", "-- name | energy(eV)| Vector lenghts (A) | Stresses (MPa) | N MD, N SCF \n", "-- db['Cu2.su.s7.ion.100'] | -119.2308 |7.28;7.28;7.28| -755,-755,-755 | 1,13, 13 \n", "-- add_neb(): atom Cu will be moved \n", "\n", "-- add_neb(): *i_atom_to_move* = 1 is used \n", "\n", "-- Please choose position using *i_void_start* : [1] \n", "\n", "-- Position 1 chosen, atom: 2 Cu \n", "\n", "-- You have chosen vacancy_creation mode of add_neb tool \n", "\n", "-- Type of atom to move = Cu \n", "\n", "I can suggest you 12 end positions. The distances to them are : [ 2.57 2.57 2.57 2.57 2.57 2.57 2.57 2.57 2.57 2.57 2.57 2.57] A\n", " They are Cu [] atoms, use *i_void_final* to choose required: 1, 2, 3 .. \n", "\n", "-- Choosing position 1 with distance 2.57 A \n", "\n", "-- number of atom to delete = 0 \n", "\n", "-- Making vacancy at end position for starting configuration \n", "\n", "-- Creating geo files for starting and final configurations (versions 1 and 2) \n", "\n", "replace_atoms(): atom 0 Cu replaced with Li\n", "replace_atoms(): atom 0 Cu replaced with Li\n", "-- Warning! File ./Cu/scaled//super//neb//Cu2.su.s7v100.n5Cu2Cu2v1rLi/Cu2.su.s7v100.n5Cu2Cu2v1rLi.auto_created_starting_position_for_neb_vacancy_creation.1.geo was replaced \n", "\n", "-- Warning! File ./Cu/scaled//super//neb//Cu2.su.s7v100.n5Cu2Cu2v1rLi/Cu2.su.s7v100.n5Cu2Cu2v1rLi.auto_created_final_position_for_neb_vacancy_creation.2.geo was replaced \n", "\n", "-- File xyz/Cu2.su.s7v100.n5Cu2Cu2v1rLi_start.xyz was written \n", "\n", "-- File xyz/Cu2.su.s7v100.n5Cu2Cu2v1rLi_end.xyz was written \n", "\n", "-- POSCAR was written to /home/aksenov/Simulation_wrapper/siman/tutorials/xyz/POSCAR1 \n", "\n", "-- POSCAR was written to /home/aksenov/Simulation_wrapper/siman/tutorials/xyz/POSCAR2 \n", "\n", "-- inherit_ngkpt(): the k-grid from Cu2.su.s7 was inherited to Cu2.su.s7v100.n5Cu2Cu2v1rLi \n", "\n", "-- Attention!, cluster None is not found, using default cee \n", "\n", "-- Attention, I update number of images in the set to 5 for this calculation; \n", "\n", "-- check_kpoints(): Kpoint mesh is: [4, 4, 4] \n", "\n", "-- check_kpoints(): The actual k-spacings are [ 0.22 0.22 0.22] \n", "\n", "-- POSCAR was written to /home/aksenov/Simulation_wrapper/siman/tutorials/Cu/scaled//super//neb///Cu2.su.s7v100.n5Cu2Cu2v1rLi.ion/1.POSCAR \n", "\n", "\n", "Calculation ('Cu2.su.s7v100.n5Cu2Cu2v1rLi', 'ion', 1) successfully created\n", "\n", " \n", "\n", "-- check_kpoints(): Kpoint mesh is: [4, 4, 4] \n", "\n", "-- check_kpoints(): The actual k-spacings are [ 0.22 0.22 0.22] \n", "\n", "-- POSCAR was written to /home/aksenov/Simulation_wrapper/siman/tutorials/Cu/scaled//super//neb///Cu2.su.s7v100.n5Cu2Cu2v1rLi.ion/2.POSCAR \n", "\n", "-- Attention! ngkpt = [4, 4, 4] is adopted from struct_des which you provided for it Cu2.su.s7v100.n5Cu2Cu2v1rLi and kspacing = 0.235 \n", "\n", "\n", "Calculation ('Cu2.su.s7v100.n5Cu2Cu2v1rLi', 'ion', 2) successfully created\n", "\n", " \n", "\n", "-- Please be sure that vtsttools are at aksenov@10.30.16.62 /home/aksenov/tools/vts/ \n", "\n" ] }, { "data": { "text/plain": [ "[{'B': 139.01017725881573,\n", " 'DS': 'None',\n", " 'x': '100%',\n", " 'id_sc': ('Cu2.su.s7', 'ion', 100),\n", " 'ion': 'Cu2',\n", " 'id': ('Cu2.su', 'ion', 100),\n", " 'proto': 'XNone',\n", " 'vol': 48.15,\n", " 'name': 'Cu2'}]" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "calc_barriers('normal', 'Cu', 'Cu', show_fit = 0, up = 0, upA = 0, upC = 0, param_dic = pd, add_loop_dic = {'run':0})\n", "# after running this command, go to ./xyz/Cu2.su.s7v100.n5Cu2Cu2v1rLi_all and check the created path\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "###3.2 Migration of interstitial atom\n", "Attention! This mode relies on C++ routine siman/findpores.cpp; It should be compiled with siman/make_findpores first" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "-- optimize_cell(): scale_region changed from (-4, 4) to (-4, 4) \n", "\n", "-- name | energy(eV)| Vector lenghts (A) | Stresses (MPa) | N MD, N SCF \n", "-- db['Cu2.su.ion.100'] | -14.9034 |3.64;3.64;3.64| -608,-608,-608 | 1,11, 11 \n", "-- name | energy(eV)| Vector lenghts (A) | Stresses (MPa) | N MD, N SCF \n", "-- db['Cu2.su.s7.ion.100'] | -119.2308 |7.28;7.28;7.28| -755,-755,-755 | 1,13, 13 \n", "-- No atoms to move found, you probably gave me deintercalated structure \n", "\n", "-- Searching for voids \n", "\n", "-- File xyz/Cu2.su.s7.ion.100.end_possible_positions.xyz was written \n", "\n", "-- File xyz/Cu2.su.s7.ion.100.end_possible_positions_replicated.xyz was written \n", "\n", "Sum of distances to 6 neighboring atoms for each void (A):\n", " [ 10.91 10.91 10.91 10.91 10.91 10.91 10.91 10.91 10.91 10.91\n", " 10.91 10.91 10.91 10.91 10.91 10.91 10.91 10.91 10.91 10.91\n", " 10.91 10.91 10.91 10.91 10.91 10.91 10.91 10.91 10.91 10.91\n", " 10.91 10.91] \n", "\n", "Distortion of voids (0 - is symmetrical):\n", " [ 3. 3. 3. 6. 6. 7. 3. 7. 3. 7. 10. 13. 5. 7. 10.\n", " 16. 3. 2. 3. 6. 5. 2. 3. 6. 3. 6. 9. 15. 3. 6.\n", " 11. 15.] \n", "\n", "The unique voids based on the sums: \n", "with 0.01 A prec: [ 10.91] \n", "with 0.1 A prec: [ 10.9] \n", "\n", "-- Based on crude criteria only 1 types of void are relevant \n", "\n", "+----------+---------------------+---------+--------+-------+\n", "| void # | Cart. | Index | Dev. | Sum |\n", "|----------+---------------------+---------+--------+-------|\n", "| 0 | [ 0. 0. 1.81] | 0 | 3 | 10.91 |\n", "+----------+---------------------+---------+--------+-------+ \n", "\n", "-- Please use *i_void_start* to choose the void for atom insertion from the Table above: \n", "-- I can suggest you 33 end positions. \n", "\n", "+----------+---------------------+--------+--------+-------+\n", "| void # | Cart. | Dist | Dev. | Sum |\n", "|----------+---------------------+--------+--------+-------|\n", "| 0 | [ 0. 0. 1.81] | 0 | 3 | 10.91 |\n", "| 1 | [ 1.81 1.81 1.81] | 2.56 | 10 | 10.91 |\n", "| 2 | [ 1.81 0. 0. ] | 2.56 | 3 | 10.91 |\n", "| 3 | [ 0. 1.81 0. ] | 2.56 | 3 | 10.91 |\n", "| 4 | [ 0. -1.8 3.64] | 2.57 | 7 | 10.91 |\n", "| 5 | [-1.8 0. 3.64] | 2.57 | 6 | 10.91 |\n", "| 6 | [-1.83 0. 0. ] | 2.57 | 3 | 10.91 |\n", "| 7 | [ 0. -1.83 0. ] | 2.57 | 3 | 10.91 |\n", "| 8 | [ 1.81 -1.83 1.83] | 2.57 | 10 | 10.91 |\n", "| 9 | [-1.83 1.81 1.81] | 2.57 | 9 | 10.91 |\n", "| 10 | [-1.83 -1.83 1.84] | 2.59 | 11 | 10.91 |\n", "| 11 | [ 0. 1.83 3.63] | 2.59 | 6 | 10.91 |\n", "| 12 | [ 1.84 0. 3.63] | 2.59 | 7 | 10.91 |\n", "| 13 | [ 0. 3.63 1.83] | 3.63 | 6 | 10.91 |\n", "| 14 | [ 3.64 0. 1.81] | 3.64 | 3 | 10.91 |\n", "| 15 | [ 0. 0. 5.45] | 3.64 | 3 | 10.91 |\n", "| 16 | [ 0. 0. -1.83] | 3.64 | 3 | 10.91 |\n", "| 17 | [-3.64 0. 1.81] | 3.64 | 3 | 10.91 |\n", "| 18 | [ 0. -3.64 1.83] | 3.64 | 6 | 10.91 |\n", "| 19 | [-1.8 -1.8 -1.81] | 4.43 | 15 | 10.91 |\n", "| 20 | [ 1.83 -1.8 -1.8 ] | 4.43 | 16 | 10.91 |\n", "| 21 | [ 1.81 -3.64 0. ] | 4.45 | 5 | 10.91 |\n", "| 22 | [ 3.64 1.81 0. ] | 4.45 | 3 | 10.91 |\n", "| 23 | [-3.64 1.81 0. ] | 4.45 | 3 | 10.91 |\n", "| 24 | [ 1.81 3.64 0. ] | 4.45 | 5 | 10.91 |\n", "| 25 | [-3.64 -1.8 3.64] | 4.45 | 6 | 10.91 |\n", "| 26 | [-1.8 3.64 3.64] | 4.45 | 6 | 10.91 |\n", "| 27 | [-1.8 1.83 5.44] | 4.45 | 15 | 10.91 |\n", "| 28 | [ 3.64 -1.8 3.64] | 4.45 | 6 | 10.91 |\n", "| 29 | [-1.8 -3.64 3.64] | 4.45 | 6 | 10.91 |\n", "| 30 | [-1.83 -3.64 0. ] | 4.46 | 3 | 10.91 |\n", "| 31 | [-1.83 3.64 0. ] | 4.46 | 3 | 10.91 |\n", "| 32 | [ 3.64 -1.83 0. ] | 4.46 | 3 | 10.91 |\n", "+----------+---------------------+--------+--------+-------+ \n", "\n", "-- Please choose *i_void_final* from the Table above: \n", "-- You chose: [ 1.81 1.81 1.81] \n", "-- File xyz/Cu2.su.s7.ion.100.end_possible_positions2_replicated.xyz was written \n", "\n", "-- File xyz/Cu2.su.s7.ion.100.endn5i0e1Li_start.xyz was written \n", "\n", "-- File xyz/Cu2.su.s7.ion.100.endn5i0e1Li_final.xyz was written \n", "\n", "-- Creating geo files for starting and final configurations (versions 1 and 2) \n", "\n", "replace_atoms(): atom 32 Li replaced with Li\n", "replace_atoms(): atom 32 Li replaced with Li\n", "replace_atoms(): atom 32 Li replaced with Pu\n", "replace_atoms(): atom 32 Li replaced with Pu\n", "-- File xyz/Cu2.su.s7v100.n5i0e1Li_start.xyz was written \n", "\n", "-- File xyz/Cu2.su.s7v100.n5i0e1Li_end.xyz was written \n", "\n", "-- POSCAR was written to /home/aksenov/Simulation_wrapper/siman/tutorials/xyz/POSCAR1 \n", "\n", "-- POSCAR was written to /home/aksenov/Simulation_wrapper/siman/tutorials/xyz/POSCAR2 \n", "\n", "-- Directory Cu2.su.s7v100.n5i0e1Li_all was created \n", "\n", "-- inherit_ngkpt(): the k-grid from Cu2.su.s7 was inherited to Cu2.su.s7v100.n5i0e1Li \n", "\n", "-- Attention!, cluster None is not found, using default cee \n", "\n", "-- Attention, I update number of images in the set to 5 for this calculation; \n", "\n", "-- check_kpoints(): Kpoint mesh is: [4, 4, 4] \n", "\n", "-- check_kpoints(): The actual k-spacings are [ 0.22 0.22 0.22] \n", "\n", "-- POSCAR was written to /home/aksenov/Simulation_wrapper/siman/tutorials/Cu/scaled//super//neb///Cu2.su.s7v100.n5i0e1Li.ion/1.POSCAR \n", "\n", "\n", "Calculation ('Cu2.su.s7v100.n5i0e1Li', 'ion', 1) successfully created\n", "\n", " \n", "\n", "-- check_kpoints(): Kpoint mesh is: [4, 4, 4] \n", "\n", "-- check_kpoints(): The actual k-spacings are [ 0.22 0.22 0.22] \n", "\n", "-- POSCAR was written to /home/aksenov/Simulation_wrapper/siman/tutorials/Cu/scaled//super//neb///Cu2.su.s7v100.n5i0e1Li.ion/2.POSCAR \n", "\n", "-- Attention! ngkpt = [4, 4, 4] is adopted from struct_des which you provided for it Cu2.su.s7v100.n5i0e1Li and kspacing = 0.235 \n", "\n", "\n", "Calculation ('Cu2.su.s7v100.n5i0e1Li', 'ion', 2) successfully created\n", "\n", " \n", "\n", "-- Please be sure that vtsttools are at aksenov@10.30.16.62 /home/aksenov/tools/vts/ \n", "\n" ] }, { "data": { "text/plain": [ "[{'B': 139.01017725881573,\n", " 'DS': 'None',\n", " 'x': '100%',\n", " 'id_sc': ('Cu2.su.s7', 'ion', 100),\n", " 'ion': 'Cu2',\n", " 'id': ('Cu2.su', 'ion', 100),\n", " 'proto': 'XNone',\n", " 'vol': 48.15,\n", " 'name': 'Cu2'}]" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "pd['i_atom_to_move'] = None\n", "pd['rep_moving_atom'] = None\n", "pd['el'] = 'Li'\n", "calc_barriers('normal', 'Li', 'Li', show_fit = 0, up = 0, upA = 0, upC = 1, param_dic = pd, add_loop_dic = {'run':0})\n", "#after the command is finished please check Cu2.su.s7v100.n5i0e1Li_all folder with POSCARs\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "###3.3 Using starting cell with Li\n", "Assuming you already have supercell with Li, the migration barrier for its migration can be calculated as follows\n", "using add_neb:\n", "\n" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "-- add_neb(): atom Li will be moved \n", "\n", "-- add_neb(): *i_atom_to_move* = 215 is used \n", "\n", "-- Please choose position using *i_void_start* : [1] \n", "\n", "-- Position 1 chosen, atom: 216 Li \n", "\n", "-- You have chosen vacancy_creation mode of add_neb tool \n", "\n", "-- Type of atom to move = Li \n", "\n", "I can suggest you 12 end positions. The distances to them are : [ 2.24 2.44 2.45 2.45 2.45 2.55 2.58 2.58 2.72 2.72 3.39 3.61] A\n", " They are Li ['Cu'] atoms, use *i_void_final* to choose required: 1, 2, 3 .. \n", "\n", "-- Choosing position 6 with distance 2.55 A \n", "\n", "-- number of atom to delete = 11 \n", "\n", "-- Making vacancy at end position for starting configuration \n", "\n", "-- Creating geo files for starting and final configurations (versions 1 and 2) \n", "\n", "replace_atoms(): atom 214 Li replaced with Li\n", "replace_atoms(): atom 214 Li replaced with Li\n", "replace_atoms(): atom 214 Li replaced with Pu\n", "replace_atoms(): atom 214 Li replaced with Pu\n", "-- File xyz/Cu310A2_212Li.n5Li216Li216v6_start.xyz was written \n", "\n", "-- File xyz/Cu310A2_212Li.n5Li216Li216v6_end.xyz was written \n", "\n", "-- POSCAR was written to /home/aksenov/Simulation_wrapper/siman/tutorials/xyz/POSCAR1 \n", "\n", "-- POSCAR was written to /home/aksenov/Simulation_wrapper/siman/tutorials/xyz/POSCAR2 \n", "\n", "-- Directory Cu310A2_212Li.n5Li216Li216v6_all was created \n", "\n", "-- Attention!, cluster None is not found, using default cee \n", "\n", "-- Attention, I update number of images in the set to 5 for this calculation; \n", "\n", "-- check_kpoints(): Kpoint mesh is: [2, 3, 3] \n", "\n", "-- check_kpoints(): The actual k-spacings are [ 0.15 0.18 0.19] \n", "\n", "-- POSCAR was written to /home/aksenov/Simulation_wrapper/siman/tutorials/Cu/neb//Cu310A2_212Li.n5Li216Li216v6.ion/1.POSCAR \n", "\n", "\n", "Calculation ('Cu310A2_212Li.n5Li216Li216v6', 'ion', 1) successfully created\n", "\n", " \n", "\n", "-- check_kpoints(): Kpoint mesh is: [2, 3, 3] \n", "\n", "-- check_kpoints(): The actual k-spacings are [ 0.15 0.18 0.19] \n", "\n", "-- POSCAR was written to /home/aksenov/Simulation_wrapper/siman/tutorials/Cu/neb//Cu310A2_212Li.n5Li216Li216v6.ion/2.POSCAR \n", "\n", "-- Attention! ngkpt = [2, 3, 3] is adopted from struct_des which you provided for it Cu310A2_212Li.n5Li216Li216v6 and kspacing = 0.235 \n", "\n", "\n", "Calculation ('Cu310A2_212Li.n5Li216Li216v6', 'ion', 2) successfully created\n", "\n", " \n", "\n", "-- Please be sure that vtsttools are at aksenov@10.30.16.62 /home/aksenov/tools/vts/ \n", "\n" ] }, { "data": { "text/plain": [ "'Cu310A2_212Li.n5Li216Li216v6'" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "#Here we use additional parameter *end_pos_types_z*; it allow to use Cu as final positions for Li migration\n", "\n", "from neb import add_neb\n", "st = smart_structure_read('Cu/POSCAR_Cu310A2Liis2_1lo_2_end')\n", "add_neb(st = st, it_new = 'Cu310A2_212Li', ise_new = 'ion', it_folder = 'Cu/neb',\n", " images = 5, i_atom_to_move = 215, i_void_final = 6, end_pos_types_z = [29])\n", "\n", "#Check created path in xyz/Cu310A2_212Li.n5Li216Li216v6_all" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "Database has been successfully updated\n", "\n" ] } ], "source": [ "write_database()" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "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.5.2" } }, "nbformat": 4, "nbformat_minor": 1 }