Page 1 of 1

Electric field contribution to forces with EFIELD_PEAD

Posted: Tue Dec 10, 2024 11:34 am
by veniero_lenzi

Dear VASP team,

I would like to calculate the effect of an external electric field to the total energy and forces on an insulator. I have a bulk system, so I am using the EFIELD_PEAD tag.
According to this post, this should be possible and I should get the forces with the contribution of the external electric field (https://www.vasp.at/forum/viewtopic.php?t=18983)

However, comparing the results with a calculation without an external electric field, I can see that the external field affects the total energy as it should, but the forces (the ones printed after TOTAL-FORCE in OUTCAR) are unchanged. I also tried -without effect on the forces- to turn on the LCALCEPS flag, because in the LCALCEPS vasp wiki it is stated that: "In this case, the "response" of the system is the change in the polarization P, the Hellmann-Feynman forces F, and the stress tensor σ."

Is there a way to obtain the total atomic forces including the external field contribution using EFIELD_PEAD? Any help is greatly appreciated.

I am using vasp 6.4.3.


Re: Electric field contribution to forces with EFIELD_PEAD

Posted: Wed Dec 11, 2024 1:29 pm
by merzuk.kaltak

Dear veniero_lenzi,

could you please upload input and output files (INCAR, KPOINTS, POSCAR, POTCAR, OUTCAR, OSZICAR, stdout) and let us know wihch vasp version you used?


Re: Electric field contribution to forces with EFIELD_PEAD

Posted: Thu Dec 12, 2024 9:16 pm
by veniero_lenzi

Dear merzuk.kaltak,

Thanks for your reply; please find all the I/O files for the run in the attached zipped folder. Here I used vasp 6.4.3. Let me know if you need anything else from my side.


Re: Electric field contribution to forces with EFIELD_PEAD

Posted: Fri Dec 13, 2024 2:53 pm
by merzuk.kaltak

Dear veniero_lenzi,

to switch on the effect of the applied electric field EFIELD_PEAD on the forces you need to set additionally LPEAD_RELAX=T in the INCAR.
Unfortunately, this cannot be combined with LCALCEPS=T.

Also, be aware that version 6.4.3 requires ALGO=A for LPEAD_RELAX=T.
As of version 6.5.0 vasp supports also other electronic minimizers in combination with LPEAD_RELAX.

In summary, you need to separate the LCALCEPS and LPEAD_RELAX jobs.
That is, first relaxing the structure in presence of an electric field with following INCAR (for instance):

Code: Select all

   GGA = PS
   ENMAX = 600
   EDIFF = 1e-6
   PREC = ACCURATE
   ISMEAR = 0
   SIGMA = 0.02
   ALGO = A
   ISYM = 0
   LPEAD_RELAX = .TRUE.
   LWAVE = .FALSE.
   LCHARG = .FALSE.
   LREAL = .FALSE.
   EFIELD_PEAD = 0. 0. 0.01
   ISIF = 3
   IBRION = 1
   NELMIN = 5
   NELM = 200
   NSW = 1

Afterwards using the resulting CONTCAR as POSCAR and following INCAR to run LCALCEPS:

Code: Select all

   GGA = PS
   ENMAX = 600
   EDIFF = 1e-6
   PREC = ACCURATE
   ISMEAR = 0
   SIGMA = 0.02
   ALGO = Fast
   ISYM = 0
   LCALCEPS = .TRUE.
   LWAVE = .FALSE.
   LCHARG = .FALSE.
   LREAL = .FALSE.
   EFIELD_PEAD = 0. 0. 0.01 # use the same setting as in relaxation
   NEDOS = 4001

For an orthorhombic cell, one has to run this sequence of jobs with an electric field for each Cartesian direction, separately.