| 5 | 1/1 | 返回列表 |
| 查看: 3522 | 回復(fù): 19 | |||
| 當(dāng)前只顯示滿足指定條件的回帖,點(diǎn)擊這里查看本話題的所有回帖 | |||
identation金蟲 (著名寫手)
|
[交流]
【求助】虛頻和軟模是一回事么? 已有10人參與
|
||
|
一些位移型相變,比如BaTiO3的順電-鐵電相變,在相變點(diǎn)附近有軟模,這在第一性原理計(jì)算中怎么體現(xiàn)呢?是聲子譜中存在虛頻么?虛頻和軟模是一回事么? [ Last edited by identation on 2010-7-1 at 20:02 ] |
金蟲 (著名寫手)
鐵桿木蟲 (著名寫手)

木蟲 (著名寫手)
葉落鷹飛
|
這個(gè)一般來(lái)說(shuō)都是自己寫的, 很簡(jiǎn)單! 那個(gè)web site不是提供了程序. 它的輸入文件為syml,輸出文件為inp.kpt。(你會(huì)做能帶吧,這個(gè)取點(diǎn)跟能帶的取點(diǎn)宗旨是一樣的.) 其中syml輸入文件的格式如下: 8 15 15 15 15 15 15 15 G 0.0 0.0 0.0 K -0.33333333333 0.6666666666667 0.000000000 H -0.33333333333 0.6666666666667 0.500000000 A 0.0 0.0 0.5 G 0.0 0.0 0.0 M 0.0 0.5 0.0 L 0.0 0.5 0.5 A 0.0 0.0 0.5 第一行用來(lái)標(biāo)記有多少個(gè)特殊k點(diǎn),下面是這些特殊k點(diǎn)之間每個(gè)要分多少個(gè)k點(diǎn),接著就是這些特殊k點(diǎn)的坐標(biāo)。 把下面這個(gè)程序編譯,執(zhí)行即可. c +--------------------------------------------------------- c For generating k-points along the high-symmetry lines in c Brillouin zone and for calculate band-structures ! c +---------------------------------------------------------- C ---------'syml'--------- c 6 : nhighk c 20 20 20 10 20 : ndiv(i) c X 0.5 0.0 0.5 : labhk(1),phighk(1,1),........ c G 0.0 0.0 0.0 c L 0.5 0.5 0.5 c W 0.5 0.25 0.75 c K 0.375 0.375 0.75 c G 0.0 0.0 0.0 c direct & reciprocal lattice vectors over 'emin, emax' line C ----------------------- c max k-points = 200 program gk implicit real*8 (a-h,o-z) character*2 labhk dimension tkpt(200,3),pk(200,3),phighk(10,3) dimension disk(200),dish(10),labhk(10) dimension ndiv(10) c open(5,file='syml',status='old') open(7,file='inp.kpt') c read(5,*) nhighk read(5,*) (ndiv(i),i=1,nhighk-1) do i=1,nhighk-1 ntkp=ntkp+ndiv(i) enddo ntotkpt=ntkp+1 if(nhighk>10)then write(*,*)'Number of high-symmetry k points must < 10!' STOP endif if(ntotkpt>200)then write(*,*)'Total number of k points must <= 200!' STOP endif do i=1, nhighk read(5,*) labhk(i),(phighk(i,j),j=1,3) enddo write(*,*) (labhk(i),i=1,nhighk) c c----- generating k-points along high symmetric lines -------- c c pk(1,1)=phighk(1,1) pk(1,2)=phighk(1,2) pk(1,3)=phighk(1,3) ii=1 do i = 2, nhighk delx = (phighk(i,1) - phighk(i-1,1))/float(ndiv(i-1)) dely = (phighk(i,2) - phighk(i-1,2))/float(ndiv(i-1)) delz = (phighk(i,3) - phighk(i-1,3))/float(ndiv(i-1)) do j=1, ndiv(i-1) ii = ii + 1 pk(ii,1) = pk(ii-1,1) + delx pk(ii,2) = pk(ii-1,2) + dely pk(ii,3) = pk(ii-1,3) + delz enddo enddo c 10 format(A34) weight=1.d0 do i=1,ntotkpt write(7,200) pk(i,1),pk(i,2),pk(i,3),weight enddo 200 format(3F10.6,F6.2) stop end c----------------------- end --------------------------- 網(wǎng)站上說(shuō)的很清楚! 如果你想把兩個(gè)k點(diǎn)分成十份, 就把15換成10就可以了! [ Last edited by gavinliu7390 on 2010-4-25 at 22:34 ] |

木蟲 (正式寫手)

| 最具人氣熱帖推薦 [查看全部] | 作者 | 回/看 | 最后發(fā)表 | |
|---|---|---|---|---|