Forums › Questions or bug reports › Can WT produce spin- resolved edge states of 2D TIs?
-
AuthorPosts
-
-
2021-10-21 at 3:52 AM #1164
Kaige HuParticipantDear 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
-
2021-10-28 at 3:43 PM #1167
BrookKeymasterDear 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)
-
-
AuthorPosts
You must be logged in to reply to this topic.