|
大家好,
我是做计算物理研究的。我想向大家请教一个编程的问题。在第一布里渊区内采用Monkhorst方法建立起了k网格后,每个k点上都各自建立起了一个Hamiltonian Matrix,现在我想求每个k个点上的Hamiltonian对该k点的导数。我的想法是用离散化的方法直接计算,形式如下。
[H(k)-H(k')]/(k-k')
其中k和k'为两个相邻的k个点坐标;k'为k点的下一个临近点。
我想请教的问题是:
1. 这种离散化的求导方法是否正确?
2. 在k网格边缘上的k点的Hamiltonian,如何对k点求导数呢?边缘上的k点的下一个临近的k点已经跑到第一布里渊区外了,而Monkhorst方法只计算了第一布里渊区内的k点,并没有计算第一布里渊区外的k点。这样一来,第一布里渊区外的k点上的Hamiltonian也就不被计入了。如果不被计入,那要如何计算位于k网格边缘上的k点的Hamiltonian对其的导数呢?
望大家不吝赐教,谢谢啦。
|
|