KDB

Installation

To obtain the code, use svn:
svn co http://theory.cm.utexas.edu/svn/kdb
Since this code is being built by many members, remeber to update the code everytime before you use it.
You can update it using command the following command at your KDB directory:
svn up

Usage

svn will create a directory where you invoked it, called kdb. Inside it are two important directories: bin and test. The executable is located in bin: kdb_local_client.py and kdb_remote_client.py. DO NOT USE kdb_remote_client.py. at the moment.

  • To add a reaction path to kdb, do: python PathTokdb/bin/kdb_local_client.py insert reactant_POSCAR/CONTCAR transitionstate_POSCAR/CONTCAR product_POSCAR/CONTCAR
    If insertion is successful, you'll get the message "KDB insert success", and a database will be created where you run the command, named kdb.db
  • To query if the kdb contains information about a reaction path, do python PathTokdb/bin/kdb_local_client.py query reactant_POSCAR/CONTCAR product_POSCAR/CONTCAR
    A new directory called kdbmatches will be created where you run the command.

    Nudged Elastic Band


    This will be your primary tool for finding reaction paths. With this method, the process of finding a saddle point can be devided into 3 steps:
  • 1. Create and converge your initial states. Make sure that you use your initial state image, move atoms over to their product positions to create the product image which you will relaxe. This way the atomic index will not be disrupted.
  • 2. Next you will create a linearly interpolated band that contains several images bridging your initial and final states.
  • 3. The last step is converging the band itself, with all images in it.

    More documentation can be found at the Henkelman group page. Below is a step-by-step guide once your initial and final states are converged, ideally to below 0.01 eV per angstrom.
  • 1. Create a directory to host your band. cd to that directory
  • 2. Run the script nebmake.pl : nebmake.pl initial_POSCAR/CONTCAR final_POSCAR/CONTCAR numberOfImage. 5 is the recommended number for number of images to begin with. This can change as needed.
  • 3. Copy over your INCARs from initial or final state convergence run, or from another NEB run. Make sure that the INCAR parameters are exactly the same for the initial and final state, as well as the band, except for parameters specifically for the band as given in the NEB documentation page. Do not include parameters that are using default values to keep your INCAR clean. As for the optimizer for NEB, I recommend Quick Min.
  • 4. Copy over POTCARs and KPOINTS. Make sure these are the same for all jobs related to the same project so that energies are comparable.
  • 5. Copy your initial state OUTCAR to 00 and final state OUTCAR to 06.
  • 6. Examine your band by visually looking at it. Use the script nebmovie.pl to make a movie. nebmovie.pl 0 will use POSCARs and nebmovie.pl 1 will use CONTCARs. If in the linearly interpolated band, two atoms are moving too close to each other, the band will likely not converge to where it should. Then use nebavoid.pl to avoid such outcomes.
  • 7. Modify your job submission script to request 1 node per image. On FRI, since each node is 24 cores, a 5 image job will require 120 cores. Also make the job name identifiable.
  • 8. Submit the job.