Strange atomic volumes when the weight method is used
Posted: Fri Nov 11, 2016 7:32 am
I have encountered a strange result while trying Bader v0.95a and I would like to know if anyone is having a similar problem.
I downloaded v0.95a (Mac binary) from the Bader website and tested the weight method by Yu and Trinkle on the C2H4a example, also from the website. The command was
% bader095a -b weight ../CHG_C2H4a
and ACF.dat looked like this:
# X Y Z CHARGE MIN DIST ATOMIC VOL
--------------------------------------------------------------------------------
1 6.2359100 3.9141200 5.1132900 4.0362403 0.4180409 1.4076448
2 5.3032600 4.3634500 5.9509200 3.9895170 0.4392981 8.7207286
3 7.2992600 4.0656400 5.3042500 0.9672925 0.2998894 0.9409419
4 5.5630100 4.9021400 6.8633400 0.9850735 0.2964324 7.8304858
5 5.9762200 3.3754300 4.2008600 1.0184654 0.2681500 14.3692100
6 4.2399100 4.2119500 5.7599500 0.9652454 0.3325264 14.7558330
--------------------------------------------------------------------------------
VACUUM CHARGE: 0.0382
VACUUM VOLUME: 893.7041
NUMBER OF ELECTRONS: 12.0000
As you can see, the charges are nearly equal between equivalent atoms, but the atomic volumes vary significantly. They are much smaller than ~24 on C and ~14.5 on H obtained with the neargrid method (at the same vacuum cutoff). This seems to be the case with several other examples I tested.
So I looked into weight_mod.f90. I could be wrong but it appears bdr%ionvol gets Bader volumes instead of atomic volumes. In the bader_weight_calc subroutine, bdr%ionvol is allocated bdr%nvols elements whereas it is allocated ions%nions elements in the cal_atomic_vol subroutine used by the neargrid method. I suppose it is necessary to add up Bader volumes for each atom at the end of bader_weight_calc after assign_chg2atom is called.
I downloaded v0.95a (Mac binary) from the Bader website and tested the weight method by Yu and Trinkle on the C2H4a example, also from the website. The command was
% bader095a -b weight ../CHG_C2H4a
and ACF.dat looked like this:
# X Y Z CHARGE MIN DIST ATOMIC VOL
--------------------------------------------------------------------------------
1 6.2359100 3.9141200 5.1132900 4.0362403 0.4180409 1.4076448
2 5.3032600 4.3634500 5.9509200 3.9895170 0.4392981 8.7207286
3 7.2992600 4.0656400 5.3042500 0.9672925 0.2998894 0.9409419
4 5.5630100 4.9021400 6.8633400 0.9850735 0.2964324 7.8304858
5 5.9762200 3.3754300 4.2008600 1.0184654 0.2681500 14.3692100
6 4.2399100 4.2119500 5.7599500 0.9652454 0.3325264 14.7558330
--------------------------------------------------------------------------------
VACUUM CHARGE: 0.0382
VACUUM VOLUME: 893.7041
NUMBER OF ELECTRONS: 12.0000
As you can see, the charges are nearly equal between equivalent atoms, but the atomic volumes vary significantly. They are much smaller than ~24 on C and ~14.5 on H obtained with the neargrid method (at the same vacuum cutoff). This seems to be the case with several other examples I tested.
So I looked into weight_mod.f90. I could be wrong but it appears bdr%ionvol gets Bader volumes instead of atomic volumes. In the bader_weight_calc subroutine, bdr%ionvol is allocated bdr%nvols elements whereas it is allocated ions%nions elements in the cal_atomic_vol subroutine used by the neargrid method. I suppose it is necessary to add up Bader volumes for each atom at the end of bader_weight_calc after assign_chg2atom is called.