WILSON_LOOP¶
introduction¶
We can determine the Z2 topology number of the topological insulator by Wilson loop. Computing the six time reversal invariant planes, we can obtain the Z2 topology metrics (\(\nu_0\), \(\nu_1\) \(\nu_2\) \(\nu_3\)). These six planes are k1=0.0, k1=0.5, k2=0.0, k2=0.5, k3=0.0, k3=0.5, respectively. When selecting a plane, only half of the plane needs to be selected.
where \(i = 1, 2, 3\) refers to the x, y and z directions.
The Wilson loop is implemented as follows: $\( W_n(\mathbf{k_2}) = \frac{i}{2\pi} \int_{0}^{2\pi} d\mathbf{k_1} \langle u_{n,\mathbf{k_1}, \mathbf{k_2}} | \partial_{\mathbf{k_1}} | u_{n,\mathbf{k_1}, \mathbf{k_2}}\rangle. \)$
example¶
Here is an example of how to calculate the Wilson loop of the topological insulator Bi\(_2\)Se\(_3\) located in the examples/Bi2Se3 folder.
The Input file is:
INPUT_PARAMETERS
{
    nspin                          4
    package                        ABACUS
    fermi_energy                   9.557219691497478
    fermi_energy_unit              eV
    HR_route                       data-HR-sparse_SPIN0.csr
    SR_route                       data-SR-sparse_SPIN0.csr
    rR_route                       data-rR-sparse.csr
    HR_unit                        Ry
    rR_unit                        Bohr
    max_kpoint_num                 8000
}
LATTICE
{
    lattice_constant               1.8897162
    lattice_constant_unit          Bohr
    lattice_vector
    -2.069  -3.583614  0.000000
     2.069  -3.583614  0.000000
     0.000   2.389075  9.546667
}
WILSON_LOOP
{
    occ_band           78
    k_start            0.0  0.0  0.5
    k_vect1            1.0  0.0  0.0
    k_vect2            0.0  0.5  0.0
    nk1                101
    nk2                101
}
occ_band: The number of occupied energy bands of an insulator.
k_start: The origin point coordinates used to describe a Brillouin zone plane.
k_vect1: The expansion vector is a vector used to define a Brillouin zone plane, and it is also the direction of integration for calculations.
k_vect2: The expansion vector is a vector used to define a Brillouin zone plane, and it is also the direction of Wilson loop evolution for calculations.
nk1: k_vect1 is divided into nk1 k-points.
nk2: k_vect2 is divided into nk2 k-points.
After the task calculation is completed, there will be two files in the Out/Wilson_Loop folder, namely wilson_loop.dat and plot_wl.py, corresponding to the Wilson loop of each k-point in the k_vect2 direction and drawing script.