Mitigating Pulay Stress
Moderators: Global Moderator, Moderator
-
- Jr. Member
- Posts: 51
- Joined: Thu Apr 06, 2023 12:25 pm
Mitigating Pulay Stress
I have several SCF calculations for a molecular crystal at different temperatures and I observe Pulay stress once plotting energy vs volume. The cut-off is quite high 1000eV and PREC = A and fixed for all simulations, however I can not change the KPOINTS as this is to be compared with another calculation.
I saw in wiki/index.php/Energy_vs_volume_Volume_ ... lay_stress, one can use ISTART = 1 and copy WAVECAR file if the volume is changing. This also did not worked out as the energy spread is even more. Would you have any other suggestions? Is there any way to fix number of planewaves while changing the unit-cell size?
Regards,
Burak
-
- Global Moderator
- Posts: 45
- Joined: Mon Mar 25, 2024 1:36 pm
Re: Mitigating Pulay Stress
During an ionic relaxation, the number of plane waves remains constant while the cell changes size - this is the cause of Pulay stress as the energy cutoff has to effectively change to compensate for the change in volume. Could you provide an example of a calculation with the OUTCAR? I'm not exactly sure what could be the case in your system.
For Pulay stress, a general alternative is that you can produce an energy vs volume curve and then try to fit this to an equation of state, e.g. a Murnaghan fit.
Regards,
Chris
-
- Global Moderator
- Posts: 45
- Joined: Mon Mar 25, 2024 1:36 pm
Re: Mitigating Pulay Stress
There are a few new pages on the wiki that will help with Pulay stress:
Pulay stress
Volume_relaxation
Best,
Chris
-
- Newbie
- Posts: 11
- Joined: Wed Jun 26, 2024 3:39 pm
Re: Mitigating Pulay Stress
Hi Chris,
I have a follow-up question regarding ISIF=7. If I want to perform the relaxation in an iterative manner—say, running NSW=10 steps, then reading the WAVECAR and repeating this process until the desired accuracy is achieved—I am a bit confused about the use of the ISTART keyword. The documentation mentions using ISTART=2 for a "consistent restart" from previous runs. However, I am wondering what would happen if I set ISTART=1 instead, to allow VASP to readapt to a new basis set every NSW=10 steps while reading the WAVECAR to accelerate the electronic minimization. My goal is to ensure the system reaches its equilibrium volume.
I would appreciate your thoughts on this.
Thanks!
-
- Global Moderator
- Posts: 45
- Joined: Mon Mar 25, 2024 1:36 pm
Re: Mitigating Pulay Stress
Hi,
Thanks for your question. The wiki page is a bit ambiguous. To ensure equilibrium volume is reached, you should set ISTART = 1.
Pulay stress arises from an insufficient basis set. In VASP, the number of plane waves is kept constant during a volume relaxation. The number of plane waves, cell volume, and energy cutoff are all related (cf. Pulay_stress). When the volume changes, the effective energy cutoff changes inversely, as the number of plane waves remains fixed at the original cell volume. This can be fixed by restarting the calculation, which updates the energy cutoff and therefore the number of plane waves to those for the partially optimised cell volume. The old WAVECAR may be used to avoid a completely new one being generated using ISTART. ISTART = 2 also keeps the old number of plane waves, so it restarts the calculation with the basis for the original cell. If ISTART = 1, the basis changes but the old WAVECAR is used as input for the new basis. This is the recommended setting in VASP.
I've updated the ISTART, the Pulay_stress, and Volume_relaxation pages to reflect this.
TLDR. Use ISTART = 1. You do not want a "consistent restart", as this is what causes Pulay stress and a wrong equilbirum volume
Does this answer your question?
Best wishes,
Chris
-
- Newbie
- Posts: 11
- Joined: Wed Jun 26, 2024 3:39 pm
Re: Mitigating Pulay Stress
Very well explained, Chris!
Thanks for these clarifications.
-
- Global Moderator
- Posts: 45
- Joined: Mon Mar 25, 2024 1:36 pm
Re: Mitigating Pulay Stress
Hi Reza,
You're welcome. I will close this topic now.
Best,
Chris