Re: H and S at specific Kpoint ( No.1 ) |
- Date: 2022/04/19 17:43
- Name: Kunihiro Yananose <ykunihiro@snu.ac.kr>
- Dear wei,
1. It has not been done. You should do this by yourself.
2. The scfout file does not need to contain H(k) and S(k) at each k point. Because in the tight-binding formalism, once you get the H and S components defined by each basis orbital, you can construct the H(k) and S(k) at arbitrary k. Even at the k point which was not included in the scf k-grid, you can construct H(k) and S(k). The matrices H(k) and S(k) are defined at each k-point. But the matrix components H_{(i\alpha\sigma)(j/beta/sigma')}(R) and S_{(i\alpha)(j/beta)}(R) are independent of k, where i and j are atom indices, \alpha and \beta are orbital indices, \sigma and \sigma' are spin indices, and R is lattice vectors. What scfout file contains are these k-independent components of H(R) and S(R). The k-grid in scf determines the electron density, which determines the Hamiltonian in the DFT formalism. The Hamiltonian is written in the form of H(R) components in openmx. By multiplying exp(ikR) to those components and summing them, you can get each H(k) and S(k). Please, carefully check the tight-binding theory.
3. In scfout file, the unit of the reciprocal lattice vector is 1/Bohr. Let's say the reciprocal lattice vectors are g1,g2, and g3. The variable rtv in the read_scfout.c code is the the reciprocal lattice vectors written in 1/Bohr. g1 = (rtv[1][1],rtv[1][2],rtv[1][3]) g2 = (rtv[2][1],rtv[2][2],rtv[2][3]) g3 = (rtv[3][1],rtv[3][2],rtv[3][3]) Then the fractional coordinate (0,0,0.5) corresponds to 0.5*g3
Regards, K.Yananose
|
Re: H and S at specific Kpoint ( No.2 ) |
- Date: 2022/04/20 21:05
- Name: Wei Li <liwei0099@gmail.com>
- Dear K.Yananose,
thank you very much for your reply. It really helps me a lot.
Best,
Wei
|
|