Nonzero Fermi-contact hyperfine field in insulators

Problems running VASP: crashes, internal errors, "wrong" results.


Moderators: Global Moderator, Moderator

Post Reply
Message
Author
imazin2
Newbie
Newbie
Posts: 7
Joined: Wed Feb 03, 2021 4:28 pm

Nonzero Fermi-contact hyperfine field in insulators

#1 Post by imazin2 » Sat Jun 06, 2026 2:20 pm

I set LHYPERFINE to true, and, to my surprise, I got a huge (~40 T) hyperfine Fermi-contact field despite my material being a semiconductor with a 1 eV gap. I am using tetrahedrons, so no "leaking" due to finite temperature.
I think this is because VASP places the Fermi level exactly at the top of the valence band, so the calculation is picking some spurious electron density from the valence band. A simple solution would be to add another parameter like SHYPERFINE = shift of the Fermi energy to apply before the hyperfine field calculations. Adding SHYPERFINE = 0.5 would likely solve the problem.


zahedzx
Global Moderator
Global Moderator
Posts: 7
Joined: Mon Nov 03, 2025 2:06 pm

Re: Nonzero Fermi-contact hyperfine field in insulators

#2 Post by zahedzx » Mon Jun 08, 2026 11:51 am

Hi,

Can you provide a minimal reproducing example? (check below link for more details)
https://www.vasp.at/wiki/index.php/Mini ... le_example

For an insulating system with fixed occupations, shifting the Fermi level within the gap would not normally be expected to change occupied-state quantities, so it would be useful to verify whether the large contact field originates from the electronic structure itself or from the hyperfine implementation.

Best regards,
Zahed


imazin2
Newbie
Newbie
Posts: 7
Joined: Wed Feb 03, 2021 4:28 pm

Re: Nonzero Fermi-contact hyperfine field in insulators

#3 Post by imazin2 » Mon Jun 08, 2026 12:48 pm

Thank you. Let me collect more information and get back to you with a clean question.


imazin2
Newbie
Newbie
Posts: 7
Joined: Wed Feb 03, 2021 4:28 pm

Re: Nonzero Fermi-contact hyperfine field in insulators

#4 Post by imazin2 » Wed Jun 10, 2026 4:06 pm

Hi,
First, I am taking back my original question. The problem was deeper that that and in fact the tag works fine for the nonmagnetic insulators. The problem appears in ferromagnetic calculations, where a finite HF is expected, but the answer is patently incorrect.
Here is the minimal example:
sm_isp_SD1300930-standardized_unitcell
1.0
3.2100000825 1.8532942475 6.1333333068
-3.2100000825 1.8532942475 6.1333333068
0.0000004266 -3.7065887413 6.1333333068
Br Fe
6 2
Direct
0.415329993 0.745739996 0.077220000
0.584670007 0.254260004 0.922779977
0.077220000 0.415329993 0.745739996
0.922779977 0.584670007 0.254260004
0.745739996 0.077220000 0.415329993
0.254260004 0.922779977 0.584670007
0.168630004 0.168630004 0.168630004
0.831369996 0.831369996 0.831369996
INCAR:
PREC = Accurate
PRECSYM = 0.000001
EDIFF = 1E-06
ALGO = ALL
ISYM = 1
ISMEAR = -5 # note it's a good insulator
ISPIN = 2
MAGMOM = 6*0 5 5
LDAU = .TRUE. #necessary to ensure insulating behavior
LDAUTYPE = 1
LDAUL = -1 2
LDAUU = 0 5
LDAUJ = 0 0
LHYPERFINE = .TRUE.
pp used were Br and Fe_pv, but the problem persists with using other pp's. Convergence w.r.t. the k-points has been verified.
The corresponding lines in OUTCAR was
6 1.012 -0.633 1.241 -1.326
7 6.040 5.885 6.040 -0.026

Next, I doubled the unit to get the following POSCAR, and verified that the structures were identical:
BrFeNi
1.00000000000000
3.20999996003462 1.85329434102468 12.26667000000001
-3.20999996003462 1.85329434102468 12.26667000000001
0.00000000000000 -3.70658868204936 12.26667000000001
Br Fe
12 4
direct
0.62340503500000 0.29192499500000 0.95381502500000
0.12340503500000 0.79192499500000 0.45381502500000
0.37659496500000 0.70807500500000 0.04618497500000
0.87659496500000 0.20807500500000 0.54618497500000
0.95381502500000 0.62340503500000 0.29192499500000
0.45381502500000 0.12340503500000 0.79192499500000
0.04618497500000 0.37659496500000 0.70807500500000
0.54618497500000 0.87659496500000 0.20807500500000
0.29192499500000 0.95381502500000 0.62340503500000
0.79192499500000 0.45381502500000 0.12340503500000
0.70807500500000 0.04618497500000 0.37659496500000
0.20807500500000 0.54618497500000 0.87659496500000
0.83431500500000 0.83431500500000 0.83431500500000
0.16568499500000 0.16568499500000 0.16568499500000
0.66568499500000 0.66568499500000 0.66568499500000
0.33431500500000 0.33431500500000 0.33431500500000

and changes MAGMOM to 12*0 4*5. Here is the result:
12 0.506 -0.316 0.620 -1.325
13 3.019 2.942 3.019 -0.026

which is nearly exactly 1/2 of the result for a single cell. However the HF is a characteristic of an individual site and should not change between the two settings. On a side note, neither of these sets agrees with WIEN2k, but that's a separate issue.


Post Reply