EFIELD_PEAD value limit

Queries about input and output files, running specific calculations, etc.


Moderators: Global Moderator, Moderator

Locked
Message
Author
sijia_ke
Newbie
Newbie
Posts: 1
Joined: Fri Oct 16, 2020 12:39 am

EFIELD_PEAD value limit

#1 Post by sijia_ke » Wed Jul 05, 2023 4:56 pm

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
You do not have the required permissions to view the files attached to this post.

jonathan_lahnsteiner2
Global Moderator
Global Moderator
Posts: 215
Joined: Fri Jul 01, 2022 2:17 pm

Re: EFIELD_PEAD value limit

#2 Post by jonathan_lahnsteiner2 » Thu Jul 06, 2023 5:27 pm

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

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 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

Locked