Header Ads Widget

Ab initio Calculations Using Wien2k Code

Last Posts

10/recent/ticker-posts

Tutorial 5: Weyl points characterization in TaAs

 

In this tutorial, we calculate the chirality of Weyl points (using WIEN2K density functional package) present in the TaAs by constructing a small loop in k space (or Wilson loop) around the Weyl point. The entire procedure will be done by WloopPHI code. WloopPHI is a python code that calculates the Berry phase along each Wilson loop. For the calculation of Berry phase it uses the BerryPI code implemented in WIEN2k. More details about the method can be found in arXiv:2008.08124 [cond-mat.mtrl-sci] (2020).

The crystal structure and Brillouin zone (BZ) of TaAs is shown below.

Crystal structure of TaAs

The steps are shown below:

  1. Construct a structure file using w2web:

Generate the input structure file for TaAs using the w2web interface, the makestruct utility or from a cif file. The following lattice parameters for TaAs were used: a = b = 3.436 Å; c = 11.640 Å and angles α = β = γ = 90°. TaAs crystallizes in a body-centered-tetragonal structure with space group I4 1 md (No. 109). The unit cell contains 2 non-equivalent atoms with fractional coordinates Ta (0, 0, 0.75), and As(0, 0, 0.1677).

  1. Initialize the calculation with PBE, 3% reduction of muffin-tin radii RMT, the product min(RMT)Kmax = 7, and 300 k points in the whole BZ.

init_lapw -b -vxc 13 -red 3 -rkmax 7 -numk 300

  1. Perform a self-consistent field (SCF) calculation with energy convergence of 10−4 Ry, and charge convergence of 10−3 e.

run_lapw -ec 0.0001 -cc 0.001

  1. Save the calculation to the folder noSOC.

save_lapw -d noSOC

  1. Initialize the spin-orbit coupling (SOC) using all the default parameters and run a SCF cycle with SOC.

init_so_lapw

run_lapw -ec 0.0001 -cc 0.001 -so

  1. Calculate the band structure to help locate band crossings for potential Weyl points. Generate a Γ−Σ−S−Z−N−Γ−Z−X−Γ k path with 600 intermediate points using XCrysDen, and save the k point list to a file case.klist_band (here the case is TaAs, so the file name is TaAs.klist_band). Afterward, check the case.klist_band for entries like “******” that show a problem with format. If this formatting error appears, the number of points on the path needs to be reduced.

Crystal structure of TaAs

  1. Recalculate the eigenvalues on the k path selected.

x lapw1 -band

x lapwso

  1. Generate files for plotting the band structure, case.spaghetti_ene.

x spaghetti -so

  1. Plot the band structures without SOC and with SOC. For obtaining band structure data without SOC one has to run spaghetti program without -so option (x spaghetti) after the command x lapw1 -band and save the data for plotting. There is a small gap of a few meV in the vicinity of the Weyl points because our path does not intersect the band crossing precisely.

Crystal structure of TaAs

NOTE: To calculate the exact band crossing with SOC one has to define the k path away from the high symmetry point and try to locate the band crossing. For example, we tried to locate the band crossing along Z-N and the result is shown below. The expected Weyl points are shown by black dot and the band structure is calculated along the path K1 to K2 shown by red dashed line. To precisely calculate the band crossing the K1 and K2 is further shrinked to K1' and K2' (blue color).

Crystal structure of TaAs

  1. To calculate the Chern number associated with the Weyl point, make an input file for the WloopPHI.py code. For TaAs, the input file Wloop.in is given below:

    91
    1:84
    &WloopCoordinate
    0.2500 0.0000 1.0000 ; 0.2500 0.0000 0.0000
    0.3000 0.0000 1.0000 ; 0.3000 0.0000 0.0000
    0.2800 0.1500 1.0000 ; 0.2800 0.1500 0.0000
    END
    

    Here 91 is the number of Wilson loops along the trajectory, 1:84 is the range of bands included in calculation of Berry phase, 0.2500 0.0000 1.0000 ; 0.2500 0.0000 0.0000 are initial and final (after semicolon) coordinates of k points that form a Wilson loop. BerryPI will automatically connect the first and last points to form a loop in k space. The loop should be as small as possible. Otherwise, neighboring Weyl points can contribute to the Berry flux through the loop. This can interfere with the Berry flux from the Weyl point in question and create barriers for determining the Weyl point chirality (see Fig. 2 in arXiv:2008.08124 [cond-mat.mtrl-sci] (2020)).

  2. Execute WloopPHI from your WIEN2k TaAs case directory. The variable $WIENROOT should point to your local WIEN2k installation folder (for example /your/path/to/WIEN2k_19.2).

    python $WIENROOT/SRC_BerryPI/BerryPI/WloopPHI.py Wloop.in

    This is the most computationally intensive part. The WloopPHI script automatically executes the BerryPI to calculate the Berry phase φ on the each Wilson loop along the trajectory. The output data are written in the PHI.dat file.

    # Loop (z)       BerryPhase(BP)   BP(-/+pi wrap)   BP(unwrap)
    1.00000          0.00000          0.00000          0.00000
    0.98889          0.00712          0.00712          0.00113
    0.97778          0.01377          0.01377          0.00219
    0.96667          0.02049          0.02049          0.00326
    0.95556          0.02738          0.02738          0.00436
    0.94444          0.03465          0.03465          0.00552
    0.93333          0.04236          0.04236          0.00674
    0.92222          0.05027          0.05027          0.00800
    0.91111          0.05911          0.05911          0.00941
    ...
    
  3. Plot the data from PHI.dat and calculate the Chern number using

    C = (1/2pi) * unwrap[φ(k_f) - φ(k_i)]

    Crystal structure of TaAs

NOTES:

  • This result is calculated using smallest loop shown in BZ, and it covered only one Weyl point.

  • The obtained result agrees with the previous study by Hongming Weng et al. Phys. Rev. X 5, 011029 (2015).

  • completed using WIEN2k 19.2, BerryPI Sep 7 2020, Python 2.7.15 or 3.7, Numpy 1.16.0

 https://github.com/spichardo/BerryPI/tree/master/tutorials/tutorial5

 

Post a Comment

1 Comments