24小时热门版块排行榜    

查看: 1143  |  回复: 2

放开那位大娘

新虫 (正式写手)

[求助] 请教关于tight binding hopping参数的问题 已有1人参与

请问怎么从wannier90计算的hr.dat文件中得到tight binding的hopping和SOC强度。新手求助啊
回复此楼
GOGOGO
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

vveEuler

银虫 (初入文坛)

【答案】应助回帖

这里有一个我写的Mathematica程序 是example03下的 你看看吧
de = Flatten[Take[Import["D:\\wannier\\silicon_hr.dat"], {4, 10}]];
hr = {Take[#, 3], Take[#, {4, 5}], #[[6]] + I #[[7]]} & /@
  Drop[Import["D:\\wannier\\silicon_hr.dat"], 10];
hk = Table[{Sum[
    E^(I hr[[l ;; -1 ;; 64]][[i,
         1]].a.k)  (hr[[l ;; -1 ;; 64]][[i, -1]]/de[]), {i, 93}],
   hr[[l ;; -1 ;; 64]][[1, 2]]}, {l, 64}];
Re@Eigenvalues[SparseArray[Table[hk[[i, 2]] -> hk[[i, 1]], {i, 64}]];
  Normal[hkk] /. k -> {0, 0, 0}]
输出Gamma点的能带
{9.70555, 8.79934, 8.79933, 8.79932, 6.22852, 6.22851, 6.2285, \
-5.82185}
和band.dat中可以对的上。
2楼2015-07-21 23:17:59
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

vveEuler

银虫 (初入文坛)

刚刚那个分号不对重发一遍
de = Flatten[
  Take[Import["D:\\wannier\\silicon_hr.dat"], {4,
    10}]]; hr = {Take[#, 3], Take[#, {4, 5}], #[[6]] + I #[[7]]} & /@
  Drop[Import["D:\\wannier\\silicon_hr.dat"], 10]; hk =
Table[{Sum[
    E^(I hr[[l ;; -1 ;; 64]][[i, 1]].a.k) (hr[[l ;; -1 ;;
           64]][[i, -1]]/de), {i, 93}],
   hr[[l ;; -1 ;; 64]][[1, 2]]}, {l, 64}];
Re@Eigenvalues[SparseArray[Table[hk[[i, 2]] -> hk[[i, 1]], {i, 64}]];
  Normal[hkk] /. k -> {0, 0, 0}]
3楼2015-07-21 23:21:09
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 放开那位大娘 的主题更新
信息提示
请填处理意见