Forums Questions or bug reports Can WT produce spin- resolved edge states of 2D TIs?

Viewing 1 reply thread
  • Author
    Posts
    • #1164

      Kaige Hu
      Participant

      Dear Dr. Wu,

      Can WannierTools produce the spin-<S<sub>z</sub>> resolved edge states of 2D topological insulators? One example is the Edge Spin DOS of 1T’ NbRhTe<sub>4</sub> shown in Fig. 2 of Nano Letters 17, 467 (2016). We want to do such calculations since they should be helpful to distinguish the complex edge states appears in our system. However, we failed to find a solution from the WT documentation.

      If not currently, is it possible to modify the source code slightly to make WT able to output the data of edge spin DOS of a 2D TI? I would be grateful if a solution can be provided. Thank you for your attention.

      Best regards,

      Kaige Hu

    • #1167

      Brook
      Keymaster

      Dear Kaige,

      The latest version can write out the spindos.dat_l and spindos.dat_r when you calculate the surface states.  The edge states in 2D system is the same as the side surface states if you treat it as a 3D system.

      You can check the code in surfstat.f90.

      271 open(unit=doslfile , file='dos.dat_l')
      272 open(unit=dosrfile , file='dos.dat_r')
      273 open(unit=dosbulkfile , file='dos.dat_bulk')
      274 open(unit=spindoslfile, file='spindos.dat_l')
      275 open(unit=spindosrfile, file='spindos.dat_r')
      276 do ikp = 1, knv2
      277 do j = 1, omeganum
      278 write(doslfile, 2002) k2len(ikp), omega(j)/eV2Hartree, dos_l(ikp, j), dos_l_only(ikp, j)
      279 write(dosrfile, 2002) k2len(ikp), omega(j)/eV2Hartree, dos_r(ikp, j), dos_r_only(ikp, j)
      280 write(dosbulkfile, 2003) k2len(ikp), omega(j)/eV2Hartree, dos_bulk(ikp, j)
      281 s0(1)=sx_l(ikp, j); s0(2)=sy_l(ikp, j); s0(3)=sz_l(ikp, j);
      282 call rotate(s0, s1)
      283 write(spindoslfile,2001) k2len(ikp), omega(j)/eV2Hartree, s1
      284 s0(1)=sx_r(ikp, j); s0(2)=sy_r(ikp, j); s0(3)=sz_r(ikp, j);
      285 call rotate(s0, s1)
      286 write(spindosrfile,2001) k2len(ikp), omega(j)/eV2Hartree, s1
      287 ENDDO
      288 write(doslfile , *)
      289 write(dosrfile , *)
      290 write(dosbulkfile , *)
      291 write(spindoslfile, *)
      292 write(spindosrfile, *)
      293 ENDDO
      294 close(doslfile)
      295 close(dosrfile)
      296 close(dosbulkfile)
      297 close(spindoslfile)
      298 close(spindosrfile)

Viewing 1 reply thread

You must be logged in to reply to this topic.

Visiting: 2,094 views