Example: Mode Tracking

Download VATools_cyclohexanone.run

#! /bin/sh

# This example demonstrates the usage of the AMS vibrational analysis tools
# on the cyclohexanone molecule.


# 1. Optimization with DFT
# ------------------------

AMS_JOBNAME=DFT $ADFBIN/ams << EOF

   System
      Atoms
         C       0.00000000      -0.00000000       0.00000000
         C       0.97860571       1.25132756       1.95058924
         C       0.97860571      -1.25132756       1.95058924
         C       0.81256878      -0.00000000       2.80673224
         C      -0.03962209      -1.27292583       0.80215060
         C      -0.03962209       1.27292583       0.80215060
         O       0.06261908       0.00000000      -1.25128260
         H       0.12330579      -2.12275790       0.11986078
         H      -1.06001189      -1.37219989       1.22906269
         H       0.87152406      -2.16703679       2.56054100
         H       2.00106532      -1.26374568       1.52181021
         H      -0.19678477       0.00000000       3.26831156
         H       1.54931293      -0.00000000       3.63180857
         H       0.87152406       2.16703679       2.56054100
         H       2.00106532       1.26374568       1.52181021
         H       0.12330579       2.12275790       0.11986078
         H      -1.06001189       1.37219989       1.22906269
      End
   End

   Task GeometryOptimization

   GeometryOptimization
      Convergence Gradients=1.0e-4
   End

   Engine BAND
   EndEngine

EOF


# 2. Obtain DFTB hessian and modes as preconditioner and guess
# ------------------------------------------------------------

AMS_JOBNAME=DFTB $ADFBIN/ams << EOF

   LoadSystem
      File DFT.results/ams.rkf
   End

   Task GeometryOptimization

   GeometryOptimization
      Convergence Gradients=1.0e-4
   End

   Properties
      NormalModes Yes
   End

   Engine DFTB
      Model DFTB3
      ResourcesDir DFTB.org/3ob-freq-1-2
   EndEngine

   NumericalDifferentiation
      Parallel nCoresPerGroup=1
   End

EOF


# 3. ModeScanning of DFTB C=O stretch mode with DFT
# -------------------------------------------------

AMS_JOBNAME=ModeScanning $ADFBIN/ams << EOF

   LoadSystem
      File DFTB.results/ams.rkf
   End
   LoadEngine DFT.results/band.rkf

   Task ModeScanning

   ModeScanning
      ModePath DFTB.results/dftb.rkf
      ModeSelect
         HighIR 1 # This should select the C=O stretch
      End
   End

   NumericalDifferentiation
      Parallel nCoresPerGroup=1
   End

EOF


# 4. Mode tracking with DFT starting from DFTB C=O stretch mode
# -------------------------------------------------------------

AMS_JOBNAME=ModeTracking $ADFBIN/ams << EOF

   LoadSystem
      File DFT.results/ams.rkf
   End
   LoadEngine DFT.results/band.rkf

   Task ModeTracking

   ModeTracking
      TrackedMode File
      ModePath DFTB.results/dftb.rkf
      HessianGuess File
      HessianPath DFTB.results/dftb.rkf
      ModeSelect
         HighIR 1 # This should select the C=O stretch
      End
   End

   NumericalDifferentiation
      Parallel nCoresPerGroup=1
   End

EOF


# 5. Mode tracking with DFT starting from a pure C=O stretch
# ----------------------------------------------------------

AMS_JOBNAME=ModeTracking_COStretch $ADFBIN/ams << EOF

   LoadSystem
      File DFT.results/ams.rkf
   End
   LoadEngine DFT.results/band.rkf

   Task ModeTracking

   ModeTracking
      TrackedMode Inline
      ModeInline
         0.0  0.0  0.7071 # This is the C attached to the O
         0.0  0.0  0.0
         0.0  0.0  0.0
         0.0  0.0  0.0
         0.0  0.0  0.0
         0.0  0.0  0.0
         0.0  0.0 -0.7071 # This is the O
         0.0  0.0  0.0
         0.0  0.0  0.0
         0.0  0.0  0.0
         0.0  0.0  0.0
         0.0  0.0  0.0
         0.0  0.0  0.0
         0.0  0.0  0.0
         0.0  0.0  0.0
         0.0  0.0  0.0
         0.0  0.0  0.0
      End
      HessianGuess File
      HessianPath DFTB.results/dftb.rkf
      ModeSelect
         HighIR 1 # This should select the C=O stretch
      End
      TrackingMethod OverlapPrevious
                   #     ^-- Probably better than the default.
                   #         Our initial mode is not particularly close yet ...
   End

   NumericalDifferentiation
      Parallel nCoresPerGroup=1
   End

EOF