In this example, geometry optimization of Cl atom on Al(100) is performed. The surface is modeled by a three-layer slab with the surface unit cell of (1x1) and the Cl atom is placed at the atop site of Al(100). This is followed by vibrational mode analysis of the adsorbed Cl atom.
1 0 0 0 0 0 4.00 10.00 2 7 7 : GMAX GMAXP NTYP NATM NATM2 1 0 : NUMBER OF SPACE GROUP TYPE OF BRAVIS LATTICE CARTESIAN 7.6534000000 0.0000000000 00.0000000000 0.0000000000 7.6534000000 00.0000000000 00.0000000000 00.0000000000 30.6136000000 4 4 1 2 2 1 : KNX KNY KNZ K-POINT SHIFT 1 0 : NCORD NINV 0.0000000000 3.8267000000 4.0000000000 1 1 2 0.0000000000 3.8267000000 0.0000000000 1 1 1 3.8267000000 0.0000000000 0.0000000000 1 1 1 0.0000000000 0.0000000000 -3.8267000000 1 0 1 3.8267000000 3.8267000000 -3.8267000000 1 0 1 0.0000000000 3.8267000000 -7.6534000000 1 0 1 3.8267000000 0.0000000000 -7.6534000000 1 0 1 13 0.15 26.9815 3 1 0.00 : IATOMN ALFA AMION ILOC IVAN ZETA 17 0.15 35.4527 3 1 0.00 : IATOMN ALFA AMION ILOC IVAN ZETA 0 0 0 0 0 : ICOND INIPOS INIVEL ININOS INIACC 0 1 : IPRE IPRI 100 200 0 57200.00 0 : NMD1 NMD2 ITER_LAST CPUMAX IFSTOP 3 1 : WAY_MIX MIX_WHAT 0 20 0.8 : STARTING_MIXING KBXMIX ALPHA 0.60 0.50 0.60 0.70 1.00 : DTIM1 DTIM2 DTIM3 DTIM4 DTIM_LAST 600.00 4 1 0.10D-08 : DTIO IMDALG IEXPL EDELTA -0.002 0.10D-02 0 : WIDTH FORCCR ISTRESS ggapbe 1 : XCTYPE NSPIN 1.00 : DESTM N_STM 101 : NBZTYP 0 0 0 : NKX NKY NKZ (DUMMY) 0 0 0 : NKX2 NKY2 NKZ2 (DUMMY) 16 : NEG 1 : NEXTST(MB) 0 : DUMMY 2 : IMSD 0 : EVALUATE_EKO_DIFF 0 : NPDOSAO 0 0.00
#$ -S /bin/sh #$ -cwd #$ -pe fillup 6 #$ -N Al100-Cl #disable OPENMP parallelism OMP_NUM_THREADS=1 # execuable of the STATE code ln -fs ../../../src/STATE # pseudopotential data ln -fs ${HOME}/STATE/gncpp/pot.Al_pbe1 fort.37 ln -fs ${HOME}/STATE/gncpp/pot.Cl_pbe1 fort.38 # launch STATE mpirun -np $NSLOTS ./STATE < nfinp_1 > nfout_1
grep -A1 f_max nfout_1and get
NIT TotalEnergy f_max f_rms edel vdel fdel 1 -27.41198444 0.017835 0.015239 0.20D-09 0.22D-07 0.10D-09 -- ... -- NIT TotalEnergy f_max f_rms edel vdel fdel 16 -27.41380898 0.002821 0.001976 0.25D-09 0.13D-07 0.94D-10 -- NIT TotalEnergy f_max f_rms edel vdel fdel 17 -27.41384275 0.000594 0.000369 0.54D-09 0.46D-07 0.26D-09Use the geometry written in GEOMETRY to generate a new input file for the following vibrational mode analysis.
1 0 0 0 0 0 4.00 10.00 2 7 7 : GMAX GMAXP NTYP NATM NATM2 1 0 : NUMBER OF SPACE GROUP TYPE OF BRAVIS LATTICE CARTESIAN 7.6534000000 0.0000000000 00.0000000000 0.0000000000 7.6534000000 00.0000000000 00.0000000000 00.0000000000 30.6136000000 4 4 1 2 2 1 : KNX KNY KNZ K-POINT SHIFT 1 0 : NCORD NINV -0.000000251836 3.826701578025 4.049619608896 1 1 2 -0.000001836163 3.826699462952 -0.045772180307 1 1 1 3.826699127649 0.000000430959 -0.233606043422 1 1 1 0.000000000000 0.000000000000 -3.826700000000 1 0 1 3.826700000000 3.826700000000 -3.826700000000 1 0 1 0.000000000000 3.826700000000 -7.653400000000 1 0 1 3.826700000000 0.000000000000 -7.653400000000 1 0 1 13 0.15 26.9815 3 1 0.00 : IATOMN ALFA AMION ILOC IVAN ZETA 17 0.15 35.4527 3 1 0.00 : IATOMN ALFA AMION ILOC IVAN ZETA 0 0 0 0 0 : ICOND INIPOS INIVEL ININOS INIACC 0 1 : IPRE IPRI 100 200 0 57200.00 0 : NMD1 NMD2 ITER_LAST CPUMAX IFSTOP 3 1 : WAY_MIX MIX_WHAT 0 20 0.8 : STARTING_MIXING KBXMIX ALPHA 0.60 0.50 0.60 0.70 1.00 : DTIM1 DTIM2 DTIM3 DTIM4 DTIM_LAST 600.00 3 1 0.10D-08 : DTIO IMDALG IEXPL EDELTA -0.002 0.10D-02 0 : WIDTH FORCCR ISTRESS ggapbe 1 : XCTYPE NSPIN 1.00 : DESTM N_STM 101 : NBZTYP 0 0 0 : NKX NKY NKZ (DUMMY) 0 0 0 : NKX2 NKY2 NKZ2 (DUMMY) 16 : NEG 1 : NEXTST(MB) 0 : DUMMY 2 : IMSD 0 : EVALUATE_EKO_DIFF 0 : NPDOSAO 0 0.00For the vibrational mode analysis, use IMDALG=3. In addition, the following "nfvibrate.data" is needed, which specfies the atomic displacement in the cartesian coordinate.
1 1.0d0 1 0.0000000000 0.0000000000 0.000000000000 1 1.0d0 1 0.1000000000 0.0000000000 0.000000000000 1 -1.0d0 1 0.1000000000 0.0000000000 0.000000000000 1 1.0d0 1 0.0000000000 0.1000000000 0.000000000000 1 -1.0d0 1 0.0000000000 0.1000000000 0.000000000000 1 1.0d0 1 0.0000000000 0.0000000000 0.100000000000 1 -1.0d0 1 0.0000000000 0.0000000000 0.100000000000The format is as follows
[index for the displacement (dummy)] [factor for the displacement #1] [index for the displaced atom #1] [X displacement] [Y displacement] [Z displacement] ... [index for the displaced atom #N] [X displacement] [Y displacement] [Z displacement] [index for the displacement (dummy)] [factor for the displacement #2] [index for the displaced atom #2] [X displacement] [Y displacement] [Z displacement] ... [index for the displaced atom #N] [X displacement] [Y displacement] [Z displacement] ...Atomic displacements are defined by the given displacements times the factor. In this example, the first displacement is zero, to check the calculated forces are small enough and thus to check the given atomic coordinates are indeed equilibrium ones. The vibration of the adsorbed Cl atom is considered and the displacements of the surface Al atoms are not considered here.
#$ -S /bin/sh #$ -cwd #$ -pe fillup 6 #$ -N Al100-Cl #disable OPENMP parallelism OMP_NUM_THREADS=1 # execuable of the STATE code ln -fs ../../../src/STATE # pseudopotential data ln -fs ${HOME}/STATE/gncpp/pot.Al_pbe1 fort.37 ln -fs ${HOME}/STATE/gncpp/pot.Cl_pbe1 fort.38 # launch STATE mpirun -np $NSLOTS ./STATE < nfinp_2 > nfout_2
../util/state2md.sh nfout_2 > MD_2.datto get "MD_2.dat." Further, we need to edit "MD_2.dat" to add the number of atoms, number of modes considered, and atomc mass (in a.m.u), which looks like
7 3 36 27 27 27 27 27 27 2 1 0.100000 3.826702 4.049620 -0.00005 -0.00000 0.00075 2 -0.000002 3.826699 -0.045772 -0.00043 0.00000 -0.00031 3 3.826699 0.000000 -0.233606 0.00033 -0.00000 0.00024 4 0.000000 0.000000 -3.826700 0.00021 -0.00000 0.00030 5 3.826700 3.826700 -3.826700 -0.00005 0.00000 0.00031 6 0.000000 3.826700 -7.653400 0.00020 0.00000 -0.00156 7 3.826700 0.000000 -7.653400 -0.00021 -0.00000 0.00028 ...The first and second columns in the first line indicate the number of atoms and vibrational modes, respectively, and the second line, atomic masses for all atoms in the atomic mass unit. Then use the program "gif" to calculate the vibrational frequencies by diagonalizing the dynamical matrix. This can be done by performing
../../util/Vibration/src/gif < MD_2.dat > MD_2.outThe vibrational frequency can be found in "MD_2.out" as
======= SUMMARY ======= MODE WR : NU(meV) NU(cm-1) 1 0.14D-04 : 2.37 19.09 2 0.14D-04 : 2.37 19.09 3 0.36D-02 : 38.15 307.73Normal modes are printed in the standard output as well as the file "vib.data,." which can be used for further analysis and visualization of the vibrational mode analysis.