Hi,
I would like to bring up a potential bug while calculating EFG using LEFG tag.
While developing the electric field gradient database (https://arxiv.org/abs/2005.09255), we noticed that eta is non-zero and unreasonable even when Vzz is zero. For example AlN(F-43m): https://www.ctcms.nist.gov/~knc6/jsmol/JVASP-7844 . From the crystal symmetry, we can predict the Vii should be zero anyways, but it would still be be nice to have this fixed in the VASP routines.
Electric field gradients after diagonalization (V/A^2)
(convention: |V_zz| > |V_xx| > |V_yy|)
----------------------------------------------------------------------
ion V_xx V_yy V_zz asymmetry (V_yy - V_xx)/ V_zz
----------------------------------------------------------------------
1 -0.000 -0.000 0.000 0.363
2 -0.000 -0.000 0.000 0.757
----------------------------------------------------------------------
Best Regards,
Kamal
Electric field gradient, eta parameter calculation: bug report
Moderators: Global Moderator, Moderator
-
- Newbie
- Posts: 1
- Joined: Fri Nov 08, 2019 8:54 pm
-
- Global Moderator
- Posts: 505
- Joined: Mon Nov 04, 2019 12:41 pm
- Contact:
Re: Electric field gradient, eta parameter calculation: bug report
Hi,
The value of the asymmetry shows up due to very small values in V_xx V_yy V_zz that most likely occur due to numeric precision.
One possible way to fix this would be to re-symmetrize the result at the end of the calculation and only print the value for eta when |V_zz| is not a tiny number.
But such behaviour will most likely only make automatic parsing the results more difficult.
Writing the value of zero for eta does not make sense in my opinion.
'Undefined' would make more sense perhaps.
What exactly would you expect the output to be in this situation?
The value of the asymmetry shows up due to very small values in V_xx V_yy V_zz that most likely occur due to numeric precision.
One possible way to fix this would be to re-symmetrize the result at the end of the calculation and only print the value for eta when |V_zz| is not a tiny number.
But such behaviour will most likely only make automatic parsing the results more difficult.
Writing the value of zero for eta does not make sense in my opinion.
'Undefined' would make more sense perhaps.
What exactly would you expect the output to be in this situation?