Bader Charge Analysis
This tutorial explains how to perform Bader charge analysis in VQkit using VASP-derived charge-density files.
Important
VQkit does not include the external Bader executable.
The Bader program must be installed separately and available in your system
PATH before VQkit can run the analysis.
VQkit currently supports Bader analysis for VASP-derived charge-density data.
Typical required files
For a normal Bader workflow, the working directory should contain:
CHGCAR
POTCAR
For a reference-density calculation, also include:
AECCAR0
AECCAR2
A complete directory may therefore look like:
CHGCAR
AECCAR0
AECCAR2
POTCAR
If Bader has already been run externally, the directory may also contain:
ACF.dat
1. Check the executable and files
Before running the analysis, select:
1
VQkit checks whether the external bader program can be found.
It also checks for:
CHGCAR
AECCAR0
AECCAR2
CHGCAR_sum
POTCAR
ACF.dat
Example output
A successful setup may look similar to:
External Bader executable : /usr/local/bin/bader
CHGCAR : found
AECCAR0 : found
AECCAR2 : found
CHGCAR_sum : not found
POTCAR : found
ACF.dat : not found
If the executable shows:
NOT FOUND
install the external Bader program or add its location to PATH.
2. Prepare the reference density
For the recommended reference-density workflow, choose:
2
VQkit reads:
AECCAR0
AECCAR2
and creates:
CHGCAR_sum
The reference density is calculated as:
Before summing, VQkit checks that:
the FFT grids are identical;
the atomic structures contain the same atom counts.
If either condition is not satisfied, VQkit stops and reports an error.
Why use CHGCAR_sum?
When AECCAR0 and AECCAR2 are available, the summed reference density
provides a better all-electron-like reference for the Bader partitioning.
The external Bader command then uses:
-ref CHGCAR_sum
3. Run Bader analysis
Choose:
3
VQkit first searches for the Bader executable.
It then checks for:
CHGCAR
Reference-density behavior
VQkit automatically chooses the reference density.
Priority:
If both
AECCAR0andAECCAR2exist, VQkit createsCHGCAR_sumautomatically.If
CHGCAR_sumalready exists, VQkit can use it.If no reference density is available, Bader analysis proceeds without the reference-density option.
The effective external command is similar to:
bader CHGCAR -ref CHGCAR_sum
when a reference density is available.
The Bader executable produces:
ACF.dat
VQkit then parses ACF.dat automatically.
4. Analyze an existing ACF.dat
If Bader has already been run outside VQkit, select:
4
VQkit reads:
ACF.dat
and exports the parsed charge information without rerunning the external Bader program.
This is useful when:
Bader was run manually;
Bader was run on an HPC system;
you only want VQkit to process and organize the results.
Output file
VQkit writes:
VQkit_BADER_CHARGES.csv
The CSV contains columns such as:
index
element
x
y
z
bader_electrons
zval
net_charge
min_dist
atomic_volume
Meaning of the columns
index
The 1-based atom index.
element
The chemical symbol obtained from the structure information in CHGCAR when
available.
x, y, z
The atomic coordinates reported by Bader in ACF.dat.
bader_electrons
The number of electrons assigned to the atom by Bader partitioning.
zval
The VASP valence-electron count read from POTCAR.
VQkit reads the ZVAL value from each POTCAR dataset.
net_charge
When both POTCAR and structure information are available, VQkit calculates:
where:
\(Z_{\mathrm{VAL}}\) is the VASP
ZVALvalue;\(N_{\mathrm{Bader}}\) is the Bader electron count.
VQkit uses the convention:
positive net charge = electron depletion
negative net charge = electron accumulation
Example interpretation
Suppose a Li atom has:
ZVAL = 1.0000
Bader electrons = 0.1200
Then:
This indicates strong electron depletion from Li.
Suppose an O atom has:
ZVAL = 6.0000
Bader electrons = 6.6500
Then:
This indicates electron accumulation on O.
Complete example workflow
Assume your VASP calculation directory contains:
CHGCAR
AECCAR0
AECCAR2
POTCAR
Step 2 — Check the setup
Choose:
1
Confirm that:
baderis detected;CHGCARis present;AECCAR0is present;AECCAR2is present;POTCARis present.
Step 3 — Prepare the reference density
Choose:
2
VQkit creates:
CHGCAR_sum
Step 4 — Run Bader
Choose:
3
VQkit runs the external Bader executable.
After completion you should have:
ACF.dat
VQkit_BADER_CHARGES.csv
Step 5 — Inspect the result
Open:
VQkit_BADER_CHARGES.csv
For each atom, inspect:
Bader electron population;
ZVAL;calculated net charge;
atomic volume.
Step 6 — Use the charge-sign convention correctly
Remember:
+q = electron depletion
-q = electron accumulation
Existing ACF.dat example
Assume you already ran:
bader CHGCAR -ref CHGCAR_sum
outside VQkit.
Your directory contains:
ACF.dat
CHGCAR
POTCAR
Open the VQkit Bader menu and choose:
4
VQkit reads the existing ACF.dat and creates:
VQkit_BADER_CHARGES.csv
No new Bader calculation is run.
Common problems
Bader executable not found
Problem:
Bader executable not found
Check:
which bader
on Linux/HPC.
On Windows, check that the executable directory is included in PATH.
CHGCAR not found
The run option requires:
CHGCAR
Make sure VQkit is operating in the correct working directory.
AECCAR grid mismatch
If AECCAR0 and AECCAR2 were generated from different calculations or
different FFT grids, VQkit refuses to create CHGCAR_sum.
Use AECCAR0 and AECCAR2 generated from the same VASP calculation.
Atom-count mismatch
The structure in the charge-density files must be identical.
If the atom counts differ, VQkit stops before summing the reference density.
POTCAR missing
Bader electron populations can still be parsed without POTCAR.
However, VQkit cannot calculate the net_charge column from ZVAL if
POTCAR is unavailable.
Scientific cautions
Bader charge is not a formal oxidation state
The Bader net charge is a charge-partitioning result and should not automatically be interpreted as an integer oxidation state.
Reference density
For VASP Bader analysis, using AECCAR0 + AECCAR2 as the reference density
is generally preferable when those files are available.
Grid quality
Charge-partitioning accuracy can depend on the charge-density grid.
For quantitative comparisons, use consistent calculation settings and sufficiently converged FFT grids.
Comparing systems
When comparing Bader charges across several structures, keep the following consistent where possible:
pseudopotential family;
exchange-correlation functional;
plane-wave cutoff;
FFT-grid quality;
charge-density generation settings;
Bader analysis procedure.
The scientific interpretation remains the responsibility of the researcher.