Dear admin people,
I have tested different EFIELD_PEAD for applying a finite electric field to obtain static dielectric tensor and happened to find that values that are smaller than 0.0001 can not be correctly read in. If such values are entered, the electric field value would be automatically set to 0.01 (default value). For example, I have attached two calculations (in separated folders in the zip) for TiO2 at EFIELD_PEAD=3*0.01 (default) and EFIELD_PEAD=3*0.00001. You can see from the process that the induced electronic polarizations are the same for both cases, while induced polarization should scale with the applied electric field. Different versions of VASP (6.3.2 and 6.2.1) have been tested and both of them have this issue. (I only attached 6.3.2 one). I also tried EFIELD_PEAD= 1.0E-5 1.0E-5 1.0E-5, this issue still exists. I understand it is unusual to apply an electric field that is too small, but the acceptable range of EFIELD_PEAD is not stated in vaspwiki https://www.vasp.at/wiki/index.php/EFIELD_PEAD. Please let me know what you think of this. Thank you.
Sincerely,
Sijia
PhD student in Neaton group,
University of California at Berkeley
EFIELD_PEAD value limit
Moderators: Global Moderator, Moderator
-
- Newbie
- Posts: 1
- Joined: Fri Oct 16, 2020 12:39 am
EFIELD_PEAD value limit
You do not have the required permissions to view the files attached to this post.
-
- Global Moderator
- Posts: 215
- Joined: Fri Jul 01, 2022 2:17 pm
Re: EFIELD_PEAD value limit
Dear sijia_ke,
You are right when using EFIELD_PEAD in combination with LCALCEPS the EFIELD_PEAD will be overwritten with the default value
if the value is less than 1E-5. But this is not a bug this is how the code should behave.
If you want to apply electric fields smaller than this threshold you can in principle try to comment out the lines in the file pead.F
routine where the threshold is checked
and then recompile vasp. But when doing so you should do careful testing to check if the code still works properly.
And I completely agree that the vasp wiki should mention this minimum value check. We will change this soon. Thank you for reporting the missing comment on the vasp wiki.
If you have further questions don't hesitate to contact us.
All the best
Jonathan
You are right when using EFIELD_PEAD in combination with LCALCEPS the EFIELD_PEAD will be overwritten with the default value
if the value is less than 1E-5. But this is not a bug this is how the code should behave.
If you want to apply electric fields smaller than this threshold you can in principle try to comment out the lines in the file pead.F
routine where the threshold is checked
Code: Select all
IF (LPEAD_CALC_EPS()) THEN
DO I=1,3
IF (ABS(EFIELD_PEAD(I))<1E-5_q) EFIELD_PEAD(I)=0.01_q
ENDDO
ENDIF
And I completely agree that the vasp wiki should mention this minimum value check. We will change this soon. Thank you for reporting the missing comment on the vasp wiki.
If you have further questions don't hesitate to contact us.
All the best
Jonathan