Calculating charge transfer using the Bader analysis method in VASP
A step-by-step guide to performing charge transfer calculations on VASP, using the Bader analysis method. There can be two methods of extracting the charge transfer; (1) without the consideration of the core charge, i.e. valence charge only, and (2) with the inclusion of core + valence charges. We will focus on method (2) here.
Let's just say we have a slab consisting of graphene above Cu(111):
Get the CHGCAR (as well as other necessary files) from the geometrically optimized SCF run, put into a new folder.
For simplicity's sake we'll name it Bader_01.Now, we have CHGCAR, CONTCAR, POSCAR, INCAR, KPOINTS, jobscript files in the Bader_01 folder
cp CONTCAR POSCAR
Add this tag into your INCAR: LAECHG = .TRUE. (core charge will then be written in AECCAR0)
Other parameters include: NSW=0, LWAVE = .FALSE., LCHARG = .TRUE.qsub jobscript
The following files will be generated:
AECCAR0, AECCAR1, AECCAR2
Only pay attention to AECCAR0 (contains core charge) and AECCAR2 (contains valence charge), I usually delete AECCAR1The following scripts will be needed: (1) bader, and (2) chgsum.pl.
They can be obtained from the Henkelman group web site:
http://theory.cm.utexas.edu/henkelman/code/bader/Then combine them using this command: chgsum.pl AECCAR0 AECCAR2 > chgsum_output
CHGCAR_sum will be written
AVF.dat, BCF.dat
ONCE CALCULATION IS DONE:
- mkdir core-val_chg_method
- cp AECCAR0 AECCAR2 core-val_chg_method
- chgsum.pl AECCAR0 AECCAR2 --> CHGCAR_sum will be created, where CHGCAR_sum is the sum of AECCAR0 and AECCAR2
- bader CHGCAR -ref CHGCAR_sum > bader_output
- If you get a relatively large vacuum charge, then you can consider using:
bader CHGCAR -ref CHGCAR_sum -vac 1E-5 > bader-vac1E-5_output - If you get an error message in the bader-vac1E-5_output file, then refer to the error note [1] below.
- Copy & paste ACF.dat into your Excel sheet.
A few notes on possible errors:
If you get this error " ERROR: should be no new maxima in edge refinement"
--> Then there might be a problem with the CHGCAR_sum figure.
http://theory.cm.utexas.edu/forum/viewtopic.php?t=2417
http://theory.cm.utexas.edu/forum/viewtopic.php?f=1&t=2837If you are including core charge (LAECHG = .TRUE.) in your calculation, then ACF.dat & BCF.dat should give the same partial charges. For calcs with fragmented volumes, then ACF.dat is better [http://theory.cm.utexas.edu/forum/viewtopic.php?t=1216].
*Credit: the Bader code is written by Graeme Henkelman's group at the University of Texas