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_1grep -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-09
Use 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.00
For 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.73
Normal 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.