====== NEB (nudged elastic band) calculation ====== The diffusion barrier for Li on graphene. There are three steps, the first step is “**RELAX**” calculation for initial and final states, the second is “**SCF**” calculation, and the third is “**NEB**” calculation. ===== First Step: “RELAX” calculation for initial and final states ===== ==== Initial state relaxation ==== === Input files === atom.config 51 LATTICE 12.30000019 0.00000000 0.00000000 -6.15000010 10.65211263 0.00000000 0.00000000 0.00000000 20.00000000 POSITION 6 0.13302763 0.06631131 0.50001912 1 1 1 6 0.13244991 0.26622178 0.50007744 1 1 1 6 0.13302290 0.46671968 0.50002064 1 1 1 ... 6 0.86685591 0.73343720 0.50000920 1 1 1 6 0.86668410 0.93331589 0.49999358 1 1 1 3 0.39999999 0.39999999 0.58526884 1 1 1 etot.input 2 2 JOB = RELAX IN.PSP1 = C.SG15.PBE.UPF IN.PSP2 = Li.SG15.PBE.UPF IN.ATOM = atom.config RELAX_DETAIL = 1 100 0.01 Ecut = 50 Ecut2 = 200 MP_N123 = 3 3 1 0 0 0 XCFUNCTIONAL = PBE SYS_TYPE = 2 SYS_TYPE: specifies type of the system and automatically adjust the parameter “FERMIDE”, 1: semiconductor or insulator (default, FERMIDE=0.025); 2: metallic (FERMIDE=0.2). C.SG15.PBE.UPF, Li.SG15.PBE.UPF === Calculations === - You can submit PWmat tasks in different ways: mpirun -np 4 PWmat | tee output Run the command directly #!/bin/bash #PBS -N SCF #PBS -l nodes=1:ppn=4 #PBS -q batch #PBS -l walltime=100:00:00 ulimit -s unlimited cd $PBS_O_WORKDIR mpirun -np 4 PWmat | tee output Submit the task with a pbs script - Obtain the final.config file, which contains the position of the last ionic step of the relaxation, and can be used for step two “**SCF**” calculation. ==== Final state relaxation ==== === Input files === atom.config 51 LATTICE 12.30000019 0.00000000 0.00000000 -6.15000010 10.65211263 0.00000000 0.00000000 0.00000000 20.00000000 POSITION 6 0.13330299 0.06669701 0.49998566 1 1 1 6 0.13316367 0.26655079 0.50000705 1 1 1 6 0.13316402 0.46660047 0.50000705 1 1 1 ... 6 0.86753884 0.73377247 0.50007857 1 1 1 6 0.86696519 0.93367340 0.50002931 1 1 1 3 0.60000002 0.60000002 0.58521177 1 1 1 etot.input 2 2 JOB = RELAX IN.PSP1 = C.SG15.PBE.UPF IN.PSP2 = Li.SG15.PBE.UPF IN.ATOM = atom.config RELAX_DETAIL = 1 100 0.01 Ecut = 50 Ecut2 = 200 MP_N123 = 3 3 1 0 0 0 XCFUNCTIONAL = PBE SYS_TYPE = 2 C.SG15.PBE.UPF, Li.SG15.PBE.UPF === Calculations === - You can submit PWmat tasks in different ways: mpirun -np 4 PWmat | tee output Run the command directly #!/bin/bash #PBS -N SCF #PBS -l nodes=1:ppn=4 #PBS -q batch #PBS -l walltime=100:00:00 ulimit -s unlimited cd $PBS_O_WORKDIR mpirun -np 4 PWmat | tee output Submit the task with a pbs script - Obtain the final.config file, which contains the position of the last ionic step of the relaxation, and can be used for step two “**SCF**” calculation. ===== Second Step: “SCF” calculation for initial and finial states ===== ==== Initial state scf ==== === Input files === atom.config 51 atoms,Iteration = 8, Etot,Ep,Ek = -0.7946015575E+04 -0.7946015575E+04 0.0000000000E+00, Average Force= 0.15454E-02, Max force= 0.33836E-02 Lattice vector (Angstrom), stress(eV/natom) 0.1230000019E+02 0.0000000000E+00 0.0000000000E+00 -0.6150000100E+01 0.1065211263E+02 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.2000000000E+02 Position, move_x, move_y, move_z 6 0.133312758 0.066687242 0.499990024 1 1 1 6 0.133149613 0.266557805 0.500008510 1 1 1 6 0.133149503 0.466579100 0.500008574 1 1 1 ... 6 0.867547638 0.733777090 0.500077817 1 1 1 6 0.866970187 0.933684078 0.500023723 1 1 1 3 0.600000020 0.600000020 0.585322202 1 1 1 Copy final.config from previous initial state RELAX calculation, and rename atom.config etot.input 2 2 JOB = SCF IN.PSP1 = C.SG15.PBE.UPF IN.PSP2 = Li.SG15.PBE.UPF IN.ATOM = atom.config Ecut = 50 Ecut2 = 200 MP_N123 = 3 3 1 0 0 0 XCFUNCTIONAL = PBE E_ERROR = 0 SYS_TYPE = 2 C.SG15.PBE.SOC.UPF, Li.SG15.PBE.SOC.UPF === Calculations === - You can submit PWmat tasks in different ways: mpirun -np 4 PWmat | tee output Run the command directly #!/bin/bash #PBS -N SCF #PBS -l nodes=1:ppn=4 #PBS -q batch #PBS -l walltime=100:00:00 ulimit -s unlimited cd $PBS_O_WORKDIR mpirun -np 4 PWmat | tee output Submit the task with a pbs script
  1. Read total energy from REPORT, and as input parameter for next NEB calculation.
grep "E_tot(eV)" REPORT | tail -1 >>> E_tot(eV) = -.79460153820497E+04 -.3343E-03 ==== Final state scf ==== === Input files === atom.config 51 atoms,Iteration = 8, Etot,Ep,Ek = -0.7946015575E+04 -0.7946015575E+04 0.0000000000E+00, Average Force= 0.15454E-02, Max force= 0.33836E-02 Lattice vector (Angstrom), stress(eV/natom) 0.1230000019E+02 0.0000000000E+00 0.0000000000E+00 -0.6150000100E+01 0.1065211263E+02 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.2000000000E+02 Position, move_x, move_y, move_z 6 0.133312758 0.066687242 0.499990024 1 1 1 6 0.133149613 0.266557805 0.500008510 1 1 1 6 0.133149503 0.466579100 0.500008574 1 1 1 ... 6 0.867547638 0.733777090 0.500077817 1 1 1 6 0.866970187 0.933684078 0.500023723 1 1 1 3 0.600000020 0.600000020 0.585322202 1 1 1 Copy final.config from previous final state RELAX calculation, and rename atom.config etot.input 2 2 JOB = SCF IN.PSP1 = C.SG15.PBE.UPF IN.PSP2 = Li.SG15.PBE.UPF IN.ATOM = atom.config Ecut = 50 Ecut2 = 200 MP_N123 = 3 3 1 0 0 0 XCFUNCTIONAL = PBE E_ERROR = 0 SYS_TYPE = 2 C.SG15.PBE.SOC.UPF, Li.SG15.PBE.SOC.UPF === Calculations === - You can submit PWmat tasks in different ways: mpirun -np 4 PWmat | tee output Run the command directly #!/bin/bash #PBS -N SCF #PBS -l nodes=1:ppn=4 #PBS -q batch #PBS -l walltime=100:00:00 ulimit -s unlimited cd $PBS_O_WORKDIR mpirun -np 4 PWmat | tee output Submit the task with a pbs script - Read total energy from REPORT, and as input parameter for next NEB calculation. grep "E_tot(eV)" REPORT | tail -1 >>> E_tot(eV) = -.79460153754978E+04 -.3548E-03 ===== Third Step: “NEB” calculation ===== ==== Input files ==== atom_initial.config 51 atoms,Iteration = 8, Etot,Ep,Ek = -0.7946015575E+04 -0.7946015575E+04 0.0000000000E+00, Average Force= 0.15454E-02, Max force= 0.33836E-02 Lattice vector (Angstrom), stress(eV/natom) 0.1230000019E+02 0.0000000000E+00 0.0000000000E+00 -0.6150000100E+01 0.1065211263E+02 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.2000000000E+02 Position, move_x, move_y, move_z 6 0.133312758 0.066687242 0.499990024 1 1 1 6 0.133149613 0.266557805 0.500008510 1 1 1 6 0.133149503 0.466579100 0.500008574 1 1 1 ... 6 0.867547638 0.733777090 0.500077817 1 1 1 6 0.866970187 0.933684078 0.500023723 1 1 1 3 0.600000020 0.600000020 0.585322202 1 1 1 Copy final.config from previous initial state RELAX calculation, and rename atom.config atom_final.config 51 atoms,Iteration = 8, Etot,Ep,Ek = -0.7946015575E+04 -0.7946015575E+04 0.0000000000E+00, Average Force= 0.15454E-02, Max force= 0.33836E-02 Lattice vector (Angstrom), stress(eV/natom) 0.1230000019E+02 0.0000000000E+00 0.0000000000E+00 -0.6150000100E+01 0.1065211263E+02 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.2000000000E+02 Position, move_x, move_y, move_z 6 0.133312758 0.066687242 0.499990024 1 1 1 6 0.133149613 0.266557805 0.500008510 1 1 1 6 0.133149503 0.466579100 0.500008574 1 1 1 ... 6 0.867547638 0.733777090 0.500077817 1 1 1 6 0.866970187 0.933684078 0.500023723 1 1 1 3 0.600000020 0.600000020 0.585322202 1 1 1 Copy final.config from previous initial state RELAX calculation, and rename atom.config etot.input 2 2 JOB = NEB IN.PSP1 = C.SG15.PBE.UPF IN.PSP2 = Li.SG15.PBE.UPF IN.ATOM = atom_initial.config NEB_DETAIL = 5, 100, 0.02, 5, 0.1, 1, -.79460153820497E+04, -.79460153754978E+04, 1, atom_final.config #IMTH, NSTEP, FORCE_TOL, NIMAGE, AK, TYPE_SPRING, E0, EN, ITYPE_AT2, ATOM2.CONFIG Ecut = 50 Ecut2 = 200 MP_N123 = 3 3 1 0 0 0 2 XCFUNCTIONAL = PBE SYS_TYPE = 2 - JOB = NEB: specifies NEB or CI-NEB calculation. - IMTH: the algorithm used for atomic relaxation.. - NSTEP: the maximum number of line-minimization steps in the relaxation process. - FORCE_TOL: the atomic force tolerance ($$eV/\text{\AA}$$) to stop the relaxation. - NIMAGE: the number of images in the NEB. - AK: the spring constant for the image string ($$eV/\text{\AA}^2$$) . - TYPE_SPRING: the type of string used in NEB algorithm. - E0,EN: the precalculated energy of initial and final configurations. - ITYPE_AT2: the type of ATOM2.CONFIG - ATOM2.CONFIG: if ITYPE_AT2=1, ATOM2.CONFIG is the configuraton of final state; if ITYPE_AT2=2, ATOM2.CONFIG should contain all the NIMAGE, initial and final images. It can copy from MOVEMENT. C.SG15.PBE.SOC.UPF, Li.SG15.PBE.SOC.UPF === Calculations === - You can submit PWmat tasks in different ways: mpirun -np 4 PWmat | tee output Run the command directly #!/bin/bash #PBS -N SCF #PBS -l nodes=1:ppn=4 #PBS -q batch #PBS -l walltime=100:00:00 ulimit -s unlimited cd $PBS_O_WORKDIR mpirun -np 4 PWmat | tee output Submit the task with a pbs script - For NEB calculation, the main report file is NEB.BARRIER, which concisely report the energies along the images for different relaxation interation steps. A typical NEB.BARRIER file looks like: iter= 0 Etot(eV),dist(Bohr),angle(cos(th)) 0 -0.79460153820497E+04 0.775127E+00 0.000000E+00 1 -0.79458967676866E+04 0.775511E+00 0.999799E+00 2 -0.79456608594139E+04 0.775152E+00 0.999772E+00 3 -0.79455479350017E+04 0.775153E+00 0.999044E+00 4 -0.79456646396218E+04 0.775533E+00 0.999760E+00 5 -0.79458997436463E+04 0.775116E+00 0.999770E+00 6 -0.79460153754978E+04 0.000000E+00 0.000000E+00 -------------------------------------- ... ... ... iter= 46 Etot(eV),dist(Bohr),angle(cos(th)) 0 -0.79460153820497E+04 0.872956E+00 0.000000E+00 1 -0.79459501924940E+04 0.880202E+00 0.460050E+00 2 -0.79458020191154E+04 0.876583E+00 0.843128E+00 3 -0.79457334923844E+04 0.876550E+00 0.978611E+00 4 -0.79458018757778E+04 0.883367E+00 0.838971E+00 5 -0.79459501006750E+04 0.876284E+00 0.451718E+00 6 -0.79460153754978E+04 0.000000E+00 0.000000E+00 -------------------------------------- - Etot(eV)(second column): the total energy of the image. - dist(Bohr)(third column): the distance between the neighboring images. - angle(cos(th))(fourth column): the $$\cos{\theta}$$ of the angle theta between two R(image + 1) - R(image), and R(image) - R(image - 1).