Calculating the hyperfine coupling constant: Difference between revisions

From VASP Wiki
Line 109: Line 109:
Several tests are necessary to obtain converged coupling parameters. We provide some example scripts below:
Several tests are necessary to obtain converged coupling parameters. We provide some example scripts below:


===='''k'''-points tests====
For converging '''k''' points, start with the Γ-point and increase the '''k'''-point mesh incrementally:
For converging '''k''' points, start with the Γ-point and increase the '''k'''-point mesh incrementally:


Line 128: Line 129:
cp KPOINTS.hyperfine KPOINTS
cp KPOINTS.hyperfine KPOINTS
sed -i "s/1 1 1/$a $a $a/g" KPOINTS
sed -i "s/1 1 1/$a $a $a/g" KPOINTS
mpirun -np 4 $PATH_TO_EXECUTABLE/vasp_std
cp OUTCAR OUTCAR.$a
done
</pre>
====Energy cutoff tests====
For converging the energy cutoff, start with the value of ENMAX given in the {{FILE|POTCAR}} file and then increase incrementally in steps of 100 eV:
Initial {{TAGBL|INCAR}}:
'''INCAR.hyperfine'''
<pre>
PREC = Accurate 
ENCUT = 400       
EDIFF = 1E-6 
ISMEAR = 0; SIGMA = 0.01
LHYPERFINE = .TRUE.
NGYROMAG = 10.7084 3.077
#LASPH = .TRUE.
ISPIN = 2
</pre>
Script to loop through {{TAG|ENCUT}} from 400 eV to 600 eV:
<pre>
rm -f hyperfine.dat
for a in 400 500 600
do
cp INCAR.hyperfine INCAR
sed -i "s/400/$a/g" INCAR


mpirun -np 4 $PATH_TO_EXECUTABLE/vasp_std
mpirun -np 4 $PATH_TO_EXECUTABLE/vasp_std

Revision as of 10:17, 5 March 2025

The hyperfine coupling constant (cf. hyperfine splitting) describes the interaction between the nuclear magnetic dipole moment and the magnetic field generated by the electrons (i.e. the nuclear spin-electron spin coupling. The hyperfine coupling constant is calculated using LHYPERFINE [1]. The hyperfine splitting often includes the interaction between the nuclear quadrupole moment and the electric field gradient (EFG), which is calculated separately using LEFG and the description in performing an EFG calculation. The hyperfine splitting can be measured using electron paramagnetic resonance (EPR), also called electron-spin resonance (ESR), and in atomic spectroscopy. The theory is covered in the NMR category page and LHYPERFINE page.

Step-by-step instructions

The hyperfine constant is calculated post-self-consistent field (SCF) using LHYPERFINE. A well-converged SCF calculation is therefore crucial. The hyperfine coupling constant is sensitive to several input parameters that must all be tested.

Step 1 (optional): Calculate the hyperfine constant using a previously converged calculation.

Since the hyperfine constant is calculated post-SCF, you can use a previously converged WAVECAR with ISTART = 1 and NELM = 1. The corresponding density, CHGCAR is calculated from the WAVECAR file before the first elementary step so need not be provided.

Step 2a: Define the nuclear gyromagnetic ratios

The hyperfine coupling constant depends on the nuclear gyromagnetic ratios defined in NGYROMAG. Since the defaults are set to 1, the gyromagnetic ratios must be defined to obtain meaningful coupling constants. Each species in your POSCAR file should be defined; there is no need to define each individual ion.

Step 2b (optional): Determine a suitable energetic break value

The break condition for the self-consistency step EDIFF does not strongly influence the coupling parameter for our test systems. However, it is important to confirm this for your system before performing more expensive convergence tests.

The hyperfine coupling constant depends on the nuclear gyromagnetic ratios defined in NGYROMAG. Since the defaults are set to 1, the gyromagnetic ratios must be defined to obtain meaningful coupling constants. Each species in your POSCAR file should be defined; there is no need to define each individual ion.

Step 3: Converge the plane-wave energy cutoff

The plane-wave basis can strongly influence the coupling constant. Unconverged values should not be compared to experiment. Perform multiple calculations while increasing the basis set size, as defined in ENCUT, incrementally (e.g., by 100 eV intervals). Convergence should be aimed to be within 0.1 MHz, although this will not be feasible for heavier elements.

Step 4: Converge the k point mesh

Similar to the basis, the k point mesh can strongly influence the coupling constant. The k point mesh should be increased incrementally, i.e., 1x1x1, 2x2x2, 3x3x3, until convergence to within 0.1 MHz is achieved.

Step 5: Compare to experiment

The purpose of these calculations is to compare to experiment. An example is given in Ref. [1]. It is important to include core contributions, as these can account for a significant portion of the Fermi contact term. The total coupling parameter can be compared to EPR.

Step 6 (optional): Perform hybrid calculations

In the literature, HSE06 has been shown to better localize defect states, which improves comparison to experiment relative to PBE [1]. Consider performing a hybrid calculation, if it is affordable.

Input

The hyperfine coupling constants are calculated using LHYPERFINE

There is one additional keyword that must be defined:

  • NGYROMAG defines the nuclear gyromagnetic ratios for each element in your POSCAR file. The defaults are set to 1, which will return meaningless results. Reasonable values may be found here.

An example INCAR file is given here:

 ENCUT = 500              # Plane-wave energy cutoff in eV
 ISMEAR = 0; SIGMA = 0.01 # Defines the type of smearing; smearing width in eV

 EDIFF = 1E-6             # Energy cutoff criterion for the SCF loop, in eV
 PREC = Accurate          # Sets the "precision" mode

 LHYPERFINE = .TRUE.      # Turns on calculating the hyperfine coupling tensor
 NGYROMAG = 10.7084 42.577478461 # Specifies the nuclear gyromagnetic ratios for the ions - C and H in this case
 ISPIN = 2                # Turns on spin-polarization - noncollinear can also be used
Important: Make sure to replace the NGYROMAG in the INCAR with the values for the isotopes in your system.

Output

You can find the output for the hyperfine calculation in the OUTCAR file after the SCF cycle finishes. The total magnetic moment is listed, then the Fermi contact term:

 Total magnetic moment S=     2.0000000

 Fermi contact (isotropic) hyperfine coupling parameter (MHz)
 -------------------------------------------------------------
  ion      A_pw      A_1PS     A_1AE     A_1c      A_tot
 -------------------------------------------------------------
   1        -         -         -         -         -
   2        -         -         -         -         -
 -------------------------------------------------------------

Note the A_tot does not include the core contribution term A_1c [2]. The dipolar hyperfine coupling parameter comes next and finally the total hyperfine coupling parameter

 Dipolar hyperfine coupling parameters (MHz)
 ---------------------------------------------------------------------
  ion      A_xx      A_yy      A_zz      A_xy      A_xz      A_yz
 ---------------------------------------------------------------------
   1        -         -         -         -         -         -
   2        -         -         -         -         -         -
 ---------------------------------------------------------------------


 Total hyperfine coupling parameters after diagonalization (MHz)
 (convention: |A_zz| > |A_xx| > |A_yy|)
 ----------------------------------------------------------------------
  ion      A_xx      A_yy      A_zz     asymmetry (A_yy - A_xx)/ A_zz
 ----------------------------------------------------------------------
   1        -         -         -              -         
   2        -         -         -              -          
 ---------------------------------------------------------------------

Recommendations and advice

The hyperfine constant is less dependent on EDIFF and ENCUT, generally converging relatively quickly with respect to both. However, it is extremely strongly influenced by the method used. HSE06 was found to give values close to experimental values [1]. Additionally, the choice of k-point mesh KPOINTS used can be very important.

  • The PAW pseudopotential that you use should be considered.
    • Including additional electrons in the valence (i.e. _sv, _pv) can be important.
    • GW pseudopotentials (i.e. _GW) can have a big effect on the hyperfine coupling parameter.
  • Hybrid functionals give a better description than GGA. HSE06 can localize defect states, improving their description relative to PBE [1].
  • We recommend using tightly converged settings:
PREC = Accurate
EDIFF = 1E-6 # Note that some systems might require tighter settings, e.g. 1E-8
  • Increase the plane-wave energy cutoff ENCUT and k-point mesh KPOINTS until convergence has been achieved for the hyperfine coupling parameter.
    • If increasing the k-point mesh causes the coupling to disappear (all zeros), this is an indicator that you have a non-magnetic solution.
  • If your system relaxes to a non-magnetic solution and you think that it should be magnetic, you can enforce it using NUPDOWN to specify the number of unpaired electrons. Carefully check that the energies are lower for the magnetic solution.
  • Test your system with LASPH = .TRUE. and .FALSE. In some cases, non-spherical contributions may be important.

Example scripts for convergence tests

Several tests are necessary to obtain converged coupling parameters. We provide some example scripts below:

k-points tests

For converging k points, start with the Γ-point and increase the k-point mesh incrementally:

Initial Γ-only mesh: KPOINTS.hyperfine

C
0
G
 1 1 1
 0 0 0

Script to go through k-point meshes from Γ-only to 8x8x8:

rm -f hyperfine.dat
for a in 1 2 4 6 8
do
cp KPOINTS.hyperfine KPOINTS
sed -i "s/1 1 1/$a $a $a/g" KPOINTS

mpirun -np 4 $PATH_TO_EXECUTABLE/vasp_std

cp OUTCAR OUTCAR.$a
done

Energy cutoff tests

For converging the energy cutoff, start with the value of ENMAX given in the POTCAR file and then increase incrementally in steps of 100 eV:

Initial INCAR: INCAR.hyperfine

 PREC = Accurate  
 ENCUT = 400         
 EDIFF = 1E-6  
 ISMEAR = 0; SIGMA = 0.01 

 LHYPERFINE = .TRUE.
 NGYROMAG = 10.7084 3.077

 #LASPH = .TRUE.

 ISPIN = 2

Script to loop through ENCUT from 400 eV to 600 eV:

rm -f hyperfine.dat
for a in 400 500 600
do
cp INCAR.hyperfine INCAR
sed -i "s/400/$a/g" INCAR

mpirun -np 4 $PATH_TO_EXECUTABLE/vasp_std

cp OUTCAR OUTCAR.$a
done

References