I find a problem. When I use VASP. The terminal te...

创建于:2026年1月14日

使用 GPT-5.2 Thinking 回答 Chat01

问题

I find a problem. When I use VASP. The terminal tells me:

| |
| W W AA RRRRR N N II N N GGGG !!! |
| W W A A R R NN N II NN N G G !!! |
| W W A A R R N N N II N N N G !!! |
| W WW W AAAAAA RRRRR N N N II N N N G GGG ! |
| WW WW A A R R N NN II N NN G G |
| W W A A R R N N II N N GGGG !!! |
| |
| Tetrahedron method does not include variations of the Fermi |
| occupations, so forces and stress will be inaccurate. We suggest |
| using a different smearing scheme ISMEAR = 1 or 2 for metals in |
| relaxations. |
| |

My INCAR is:
SYSTEM = RuO2
NPAR = 4
KPAR = 6
ISTART = 0
ICHARG = 2
ISMEAR = -5
SIGMA = 0.01
ENCUT = 520
EDIFF = 1E-7
GGA = PE
LORBIT = 11
PREC = A
MIXPRE = 2
IMIX = 4
AMIX = 0.1
BMIX = 0.0001
AMIX_MAG = 0.4
BMIX_MAG = 0.0001
GGA_COMPAT = .FALSE.

WC = 100
MAXMIX = 60
NEDOS = 5000
#NELMIN = 60
NELM = 200
LMAXMIX = 6
LREAL = Auto
LWAVE = .FALSE.
LCHARG = .TRUE
ADDGRID = .TRUE
#NELMDL = -4

#NSW = 100
#IBRION = 3
#POTIM = 0.5
#ISIF = 2
#EDIFFG = -0.005

ISPIN = 2
MAGMOM = 120 124 36*0
What can I do to avoid the warning?

思考

Explaining VASP settings and recommendations

To address the warning: ISMEAR=-5 uses the tetrahedron method with Blöchl corrections, which is good for accurate total energies/DOS but doesn't handle forces and stress in metals well. For ionic relaxation (NSW>0) or cell optimization, switch to smearing (ISMEAR=1 or 0), and ensure |E0 - F| < 1 meV/atom. After relaxation, use ISMEAR=-5 for final static calculations to get accurate results.

Dealing with VASP forces and stress warning

The warning about forces and stress inaccuracies is linked to Fermi occupation variations. For semiconductors, variations are usually minimal, but VASP still prints the warning. If performing a single-point calculation, you can ignore the warning. To avoid it, switch the smearing scheme or set NSW=0 and IBRION=-1.

Clarifying ISMEAR settings for avoidance of warning

To avoid the warning, switch to ISMEAR=0/-1 with SIGMA. If the tetrahedron method is necessary for static (ISMEAR=-5), accept the warning. For relaxation, ISMEAR=1 with SIGMA around 0.2 should work, then switch to static with ISMEAR=-5. ICHARG=2 for static energy, ICHARG=11 for DOS.

Providing steps to bypass warning in VASP

To avoid the warning, if doing relaxations, switch to ISMEAR=1 or 2 with SIGMA 0.2 eV, and monitor entropy to ensure less than 1 meV/atom. If not doing relaxations, set NSW=0, IBRION=-1 to signal no forces. For static, ISMEAR=-5 is fine but forces/stress may still be inaccurate.

Thought for 1m 38s

回答

That warning is VASP telling you: ISMEAR = -5 (tetrahedron + Blöchl corrections) is great for accurate static total energies / DOS, but it is not variational w.r.t. partial occupations, so in metals the forces and stress can be wrong during relaxations. (smcm.iqfr.csic.es)

How to avoid the warning (and get reliable forces/stress)

If you are relaxing ions and/or the cell (NSW>0, IBRION>=0, ISIF>0), switch to a smearing method for metals:

Typical relaxation choice (recommended):

ini
ISMEAR = 1 # Methfessel-Paxton (order 1) SIGMA = 0.2 # often 0.1–0.2 eV for metals

(or ISMEAR = 2 similarly). (wanglab.hosted.uark.edu)

Then, after the structure is converged, do a final single-point for accurate energies / DOS:

ini
NSW = 0 IBRION = -1 ISMEAR = -5

This “relax with smearing → final static with tetrahedron” workflow is exactly what the VASP docs recommend. (wanglab.hosted.uark.edu)

Quick practical tips

  • With ISMEAR=-5, SIGMA is effectively irrelevant (tetrahedron is “without smearing”). (vasp.at)
  • When relaxing with smearing, choose SIGMA so the entropy term (often reported via the free energy vs. E0 difference) is small (rule of thumb: ~≤ 1 meV/atom). (vasp.at)

If you are not relaxing

If NSW=0 and you’re doing a pure static run, you can usually ignore the warning (it’s only warning you that forces/stress would be unreliable). But if your goal is simply “no warning,” switching away from -5 will remove it.

If you tell me whether you’re doing (a) ionic relaxation, (b) cell relaxation, or (c) static DOS/band calculation, I can suggest a clean minimal INCAR block for that exact job.

问题

I did it, but fail. My INCAR is:
SYSTEM = RuO2
NPAR = 4
KPAR = 6
ISTART = 0
ICHARG = 2
ISMEAR = -5
SIGMA = 0.01
ENCUT = 520
EDIFF = 1E-7
GGA = PE
LORBIT = 11
PREC = A
MIXPRE = 2
IMIX = 4
AMIX = 0.1
BMIX = 0.0001
AMIX_MAG = 0.4
BMIX_MAG = 0.0001
GGA_COMPAT = .FALSE.

WC = 100
MAXMIX = 60
NEDOS = 5000
#NELMIN = 60
NELM = 200
LMAXMIX = 6
LREAL = Auto
LWAVE = .FALSE.
LCHARG = .TRUE
ADDGRID = .TRUE
#NELMDL = -4

IBRION = -1
NSW = 0
#IBRION = 3
#POTIM = 0.5
#ISIF = 2
#EDIFFG = -0.005

ISPIN = 2
MAGMOM = 120 124 36*0

思考

Explaining warning with smearing methods

The warning is not an error, it's just part of the tetrahedron smearing (ISMEAR=-5) method. It can't be completely avoided, but using other smearing types may help. If you want to keep using ISMEAR=-5, you can ignore the warning, as it doesn’t affect results for static runs. Alternatively, you could try ISMEAR=-14 or -15 for different smearing methods, though it’s a bit tricky with variations. Check the docs for more details.

Clarifying warning persistence and stress calculations

The warning you see doesn’t affect the calculation, especially for static energy (no forces needed). However, if computing stress (like applying strain), the result could be slightly off (5-10% for metals). If more accuracy is desired, changing to a smearing method with small sigma or ISMEAR=-14/15 might help. Double-check that ISMEAR is actually set to 1 or 2 instead of -5.

Providing steps for static and relaxation setup

To avoid the warning, change ISMEAR from -5:

  • Step 1: For relaxations, use NSW > 0, IBRION 2, ISMEAR 1, and SIGMA 0.2.
  • Step 2: For static runs, keep ISMEAR=-5 if you don't mind the warning (harmless). Set IBRION=-1 and NSW=0.
  • Step 3: For stress/forces, use smearing with ISMEAR=1/2 or ISMEAR=-1 with small sigma.
  • Step 4: Ensure k-points are sufficient for the tetrahedron method.

Clarifying warning and INCAR setup

The warning isn’t an error, the run continues. The message appears because the tetrahedron method isn’t variational for partial occupancies. For RuO2, a metallic system, use ISMEAR=1/2 for relaxation, instead of -5. In your INCAR, ISMEAR=-5 causes the warning. To avoid it, use a different ISMEAR setting.

Example relaxation template: ISMEAR=1 SIGMA=0.2 plus relax tags.

Thought for 1m 3s

回答

That message is triggered by ISMEAR = -5 itself (tetrahedron with Blöchl corrections). It’s a warning, not an error, and VASP will print it whenever you choose the tetrahedron method because it’s not variational with respect to partial occupancies, so forces/stress can be wrong for metals. (smcm.iqfr.csic.es)

Why you still see it

In the INCAR you posted, you still have:

ini
ISMEAR = -5

So the warning will still appear. Setting NSW=0 and IBRION=-1 just means no relaxation is performed, so the warning is harmless if you only care about total energy / DOS. (But it will still print.) (smcm.iqfr.csic.es)

How to make the warning go away

You can only remove it by not using ISMEAR=-5.

Case A: You are relaxing a metal (need correct forces/stress)

Use smearing:

ini
ISMEAR = 1 # or 2 SIGMA = 0.1-0.2 NSW = 100 IBRION = 2 # (or 1/3 depending on your workflow) ISIF = 2 # or 3 if relaxing cell

This is what VASP recommends for metallic relaxations. (VASP)

Case B: You are doing a static DOS / very accurate total energy (no forces needed)

Keep:

ini
NSW = 0 IBRION = -1 ISMEAR = -5

The warning will still print, but it doesn’t “break” the calculation—it’s just telling you not to trust forces/stress from this setup. (smcm.iqfr.csic.es)

Case C: You need stress (or forces) from a static run for a metal

Don’t use -5; instead use a variational smearing (common choice is Fermi-Dirac):

ini
ISMEAR = -1 SIGMA = 0.05 # adjust as needed

(And check that the entropy/free-energy correction is small.) (VASP)

Extra note

With ISMEAR=-5, SIGMA is essentially irrelevant because it’s “without smearing.” (VASP)

If you tell me what you’re trying to compute right now (relaxation? DOS? elastic constants/stress?), I’ll suggest a clean minimal INCAR for that exact goal.

分享这个问答