【求助】siesta计算中关于K点的设置【完结】
我想和大家讨论一下siesta以及凡是用siesta做基础的其他软件象如smeagol,transiesta在计算中k点的选取问题!我这个地方一直不是很明白!
在siesta的计算中,都要构造一个原胞,用周期结构计算的方法来计算体系!其中体系的周期用下面的block设置。
%block LatticeVectors
11.53504 0.00000000 0.00000000
0.00000000 9.98964 0.00000000
0.00000000 0.00000000 30.00000000
%endblock LatticeVectors
但是要想利用siesta计算一个孤立体系,这时候就可以把这个原胞构造的大一点(足够大),使得该体系按照设置的周期平移后没有相互作用!这样计算的结果就是孤立体系的结果!
在计算周期体系的时候要进行K点的设置,可以用如下的block设置,
%block kgrid_Monkhorst_Pack
10 0 0 0.0
0 10 0 0.0
0 0 10 0.0
%endblock kgrid_Monkhorst_Pack
如果计算的体系确确实实是周期性的,例如晶体,这时候这里面每个方向上的K点就要选取的足够多,使得体系计算结果收敛,尤其是计算金属的时候,这个K点可能设置的比较大!
问题①:我上面的理解对吗?
问题②:如果我的体系在某一个方向上,如x方向有周期结构,但其他的方向没有,这个时候K点设置里是不是第一行设置的大一些,使得结果收敛,第二行,第三行直接设置1就可以!也就是说没有周期方向对应的K点行上取1就足够!(假设原胞平移矢量是正交的)
问题③:如果问题②是对的,那么上面说到的如果计算一个孤立体系,我把原胞设置的足够大没之后,在设置k点的时候各个行都设置1即可?也就是说只计算自己虚构的周期体系的Gamma点就行了!
问题④:同一个体系的计算量是不是与k点的多少成正比,也就是说只计算1个K点花10分钟,要是将K点增加到10个,那么是不是计算时间为100分钟?
附加一个问题,在进行几何结构优化的时候怎么感觉SolutonMethod Diagon TypeOfRun CG 这两个组合比较慢呢?有什么方法能使几何结构优化加快啊!一个简单的分子,G09优化用了5分钟都不到,siesta怎么得花很长时间呢?
在这儿先谢谢参与该讨论的虫子们!
谢谢高手指教!
[ Last edited by zhangguangping on 2010-7-20 at 14:30 ]
返回小木虫查看更多
京公网安备 11010802022153号
牛人~呀呀呀
第一个问题,我也是这么理解的。
第二个问题,siesta是可以自己控制有几个方向的周期性吗?不知道耶?我每次都是三个方向都做。
别的就不懂了。
我是新手,问你一个小问题可以吗?
BandLines (data block): Species the lines along which band energies are calculated (usually
along high-symmetry directions). An example for an FCC lattice is:
%block BandLines
1 1.000 1.000 1.000 L # Begin at L
20 0.000 0.000 0.000 \Gamma # 20 points from L to gamma
25 2.000 0.000 0.000 X # 25 points from gamma to X
30 2.000 2.000 2.000 \Gamma # 30 points from X to gamma
%endblock BandLines
以上出自siesta2.0.2 manual的33页,上面的L,X,Gamma是什么意思?我有一次在算的时候,出现了warning:L应该up to 3.不大懂怎么搞呀?或者你有什么有关这方面的书,推荐我看看呗。(PS:我固体物理还没学到能带那儿。)
hanyi89
说明书里,那个是k点坐标。对于不同晶系,数值是不一样的。建议你看陆栋的《固体物理》上海科技出版社出版,P20页。给出了面心和体心立方两个例子。
版主,回答你第四个问题。计算量是成指数增长。不是“只计算1个K点花10分钟,要是将K点增加到10个,那么是不是计算时间为100分钟“。k点若为10,那末体系就等于增加了1000倍,10的三次方,周期性的。换句话说就是,原胞两个原子,k点为10就变成2000个原子。当然不是真实这么多,程序考虑的是其余周期胞对研究原胞的影响。
不会吧,固体物理没学,就开始使用软件算东西了?
那些点好像是布里渊区里具有高对称性的点。据我的了解,好像你碰到的那个warning和那些点没关心,好像与你使用的赝势,以及你设置的basis有关系!warning中出现哪个元素,你就把它放到这里面%block Ps.lmax,相应的设置一个比提示小的数应该就没问题了。格式如下:
%block Ps.lmax
Au 2
C 3
H 3
N 3
%endblock Ps.lmax
或者是你换一个赝势。这个地方我也不是很明白,等你明白了,可以回来教教我
,
好,等我问问老师后再说,最近还要考toefl呀,忙呀...
1.我觉得是对的,大致上块体的一些物理量比如结合能在K点大到一定程度后收敛,这个K数可以按照经验定律来估计 nK*L~20,L是原胞在对应方向上的长度。
2.肯定是对的。
3.理论上是的,只是增加元胞尺寸的代价对有些程序而言不是线性的(如果遇到实空间网格),
而增加K点基本上是线性的。