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.