24小时热门版块排行榜    

查看: 997  |  回复: 2

gechaoyi

铁虫 (初入文坛)

[求助] kptopt, ngkpt, nshiftk shiftk kptrlatt 这几个参数怎么设置

哪位高手能给我解释下kptopt, ngkpt, nshiftk shiftk kptrlatt 这几个参数是怎么设置的阿?还有我看shiftk的设置与rprim有关,rprim这个怎么设置?我是个abinit的新手,好多不会的,麻烦大神了。。。。
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zjuer

至尊木虫 (著名写手)

【答案】应助回帖

★ ★ ★
zzy870720z(金币+3): 谢谢指教 2011-07-12 08:17:19
gechaoyi(金币+5): 谢谢你了,不过你这个就是那个教程的内容,你能通俗的给我解释下吗?我就是看不懂那个才问的。。。。 2011-07-12 09:02:22
kptopt
Mnemonics: KPoinTs OPTion
Characteristic:
Variable type: integer parameter
Default is 1 (WARNING : was 0 prior to 5.8).

Controls the set up of the k-points list. The aim will be to initialize, by straight reading or by a preprocessing approach based on other input variables, the following input variables, giving the k points, their number, and their weight: kpt, kptnrm, nkpt, and, for iscf/=-2, wtk.
Often, the k points will form a lattice in reciprocal space. In this case, one will also aim at initializing input variables that give the reciprocal of this k-point lattice, as well as its shift with respect to the origin: ngkpt or kptrlatt, as well as on nshiftk and shiftk.

A global additional shift can be provided by qptn

0=> read directly nkpt, kpt, kptnrm and wtk.
1=> rely on ngkpt or kptrlatt, as well as on nshiftk and shiftk to set up the k points. Take fully into account the symmetry to generate the k points in the Irreducible Brillouin Zone only.
(This is the usual mode for GS calculations)
2=> rely on ngkpt or kptrlatt, as well as on nshiftk and shiftk to set up the k points. Take into account only the time-reversal symmetry : k points will be generated in half the Brillouin zone.
(This is to be used when preparing or executing a RF calculation at q=(0 0 0) )
3=> rely on ngkpt or kptrlatt, as well as on nshiftk and shiftk to set up the k points. Do not take into account any symmetry : k points will be generated in the full Brillouin zone.
(This is to be used when preparing or executing a RF calculation at non-zero q )
4=> rely on ngkpt or kptrlatt, as well as on nshiftk and shiftk to set up the k points. Take into account all the symmetries EXCEPT the time-reversal symmetry to generate the k points in the Irreducible Brillouin Zone.
This has to be used when performing PAW calculations including spin-orbit coupling (pawspnorb/=0)
A negative value => rely on kptbounds, and ndivk to set up a band structure calculation along different lines (allowed only for iscf==-2). The absolute value of kptopt gives the number of segments of the band structure.
In the case of a grid of k points, the auxiliary variables kptrlen, ngkpt and prtkpt might help you to select the optimal grid.


ngkpt
Mnemonics: Number of Grid points for K PoinTs generation
Characteristic: NOT INTERNAL
Variable type: integer array ngkpt(3)
Default is No Default

Used when kptopt>=0, if kptrlatt has not been defined (kptrlatt and ngkpt are exclusive of each other).
Its three positive components give the number of k points of Monkhorst-Pack grids (defined with respect to primitive axis in reciprocal space) in each of the three dimensions. ngkpt will be used to generate the corresponding kptrlatt input variable. The use of nshiftk and shiftk, allows to generate shifted grids, or Monkhorst-Pack grids defined with respect to conventional unit cells.
When nshiftk=1, kptrlatt is initialized as a diagonal (3x3) matrix, whose diagonal elements are the three values ngkpt(1:3). When nshiftk is greater than 1, ABINIT will try to generate kptrlatt on the basis of the primitive vectors of the k-lattice: the number of shifts might be reduced, in which case kptrlatt will not be diagonal anymore.

Monkhorst-Pack grids are usually the most efficient when their defining integer numbers are even. For a measure of the efficiency, see the input variable kptrlen.

nshiftk
Mnemonics: Number of SHIFTs for K point grids
Characteristic:
Variable type: integer parameter
The Default is 1.

This parameter gives the number of shifted grids to be used concurrently to generate the full grid of k points. It can be used with primitive grids defined either from ngkpt or kptrlatt. The maximum allowed value of nshiftk is 8. The values of the shifts are given by shiftk.


shiftk
Mnemonics: SHIFT for K points
Characteristic:
Variable type: real array shift(3,nshiftk)
Default is 0.5 0.5 0.5 ... 0.5

It is used only when kptopt>=0, and must be defined if nshiftk is larger than 1.
shiftk(1:3,1:nshiftk) defines nshiftk shifts of the homogeneous grid of k points based on ngkpt or kptrlatt.
The shifts induced by shiftk corresponds to the reduced coordinates in the coordinate system defining the k-point lattice. For example, if the k point lattice is defined using ngkpt, the point whose reciprocal space reduced coordinates are ( shiftk(1,ii)/ngkpt(1) shiftk(2,ii)/ngkpt(2) shiftk(3,ii)/ngkpt(3) ) belongs to the shifted grid number ii.
The user might rely on ABINIT to suggest suitable and efficient combinations of kptrlatt and shiftk. The procedure to be followed is described with the input variables kptrlen. In what follows, we suggest some interesting values of the shifts, to be used with even values of ngkpt. This list is much less exhaustive than the above-mentioned automatic procedure.

1) When the primitive vectors of the lattice do NOT form a FCC or a BCC lattice, the usual (shifted) Monkhorst-Pack grids are formed by using nshiftk=1 and shiftk 0.5 0.5 0.5 . This is often the preferred k point sampling. For a non-shifted Monkhorst-Pack grid, use nshiftk=1 and shiftk 0.0 0.0 0.0 , but there is little reason to do that.

2) When the primitive vectors of the lattice form a FCC lattice, with rprim

        0.0 0.5 0.5
        0.5 0.0 0.5
        0.5 0.5 0.0
the (very efficient) usual Monkhorst-Pack sampling will be generated by using nshiftk= 4 and shiftk         0.5 0.5 0.5
        0.5 0.0 0.0
        0.0 0.5 0.0
        0.0 0.0 0.5
3) When the primitive vectors of the lattice form a BCC lattice, with rprim

       -0.5  0.5  0.5
        0.5 -0.5  0.5
        0.5  0.5 -0.5
the usual Monkhorst-Pack sampling will be generated by using nshiftk= 2 and shiftk         0.25  0.25  0.25
       -0.25 -0.25 -0.25
However, the simple sampling nshiftk=1 and shiftk 0.5 0.5 0.5 is excellent.
4) For hexagonal lattices with hexagonal axes, e.g. rprim

        1.0  0.0       0.0
       -0.5  sqrt(3)/2 0.0
        0.0  0.0       1.0
one can use nshiftk= 1 and shiftk 0.0 0.0 0.5
In rhombohedral axes, e.g. using angdeg 3*60., this corresponds to shiftk 0.5 0.5 0.5, to keep the shift along the symmetry axis.



kptrlatt
Mnemonics: K - PoinTs grid : Real space LATTice
Characteristic:
Variable type: integer array kptrlatt(3,3)
Default is No default.

This input variable is used only when kptopt is positive. It partially defines the k point grid. The other piece of information is contained in shiftk. kptrlatt cannot be used together with ngkpt.
The values kptrlatt(1:3,1), kptrlatt(1:3,2), kptrlatt(1:3,3) are the coordinates of three vectors in real space, expressed in the rprimd coordinate system (reduced coordinates). They defines a super-lattice in real space. The k point lattice is the reciprocal of this super-lattice, possibly shifted (see shiftk).

If neither ngkpt nor kptrlatt are defined, ABINIT will automatically generate a set of k point grids, and select the best combination of kptrlatt and shiftk that allows to reach a sufficient value of kptrlen. See this latter variable for a complete description of this procedure.
2楼2011-07-11 21:40:06
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zjuer

至尊木虫 (著名写手)

【答案】应助回帖

★ ★
zzy870720z(金币+2): 谢谢指教 2011-07-13 09:36:48
gechaoyi(金币+5): 哦,好的~谢谢啦~ 2011-07-14 10:03:15
我一般就是设置kptopt 1,ngkpt N1 N2 N3让程序自动生成K点的网格,N1、N2、N3需要根据情况进行测试收敛之后才能确定他们的适当值,nshiftk和shiftk是根据你计算的晶胞的对称性可以在手册里找到的,上面贴出来的就有,kptrlatt 我不设置,因为跟前面ngkpt 的功能类似,是另一种定义k点的方法,不过我自己不习惯用它。
3楼2011-07-12 22:13:32
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 gechaoyi 的主题更新
信息提示
请填处理意见