This thread is locked.Only browsing is available.
Top Page > Browsing
Incorrect Bloch phase factor?
Date: 2022/02/20 08:55
Name: Malone

Dear OpenMX developers,

I have some concern with the Bloch phase factor currently used in calculations.
Consider the file Band_DFT_NonCol.c, lines 2012-2033:

2011
for (AN=1; AN<=atomnum; AN++){
GA_AN = order_GA[AN];
wanA = WhatSpecies[GA_AN];
tnoA = Spe_Total_CNO[wanA];
Anum = MP[GA_AN];

for (i=0; i<tnoA; i++){

for (LB_AN=0; LB_AN<=FNAN[GA_AN]; LB_AN++){
GB_AN = natn[GA_AN][LB_AN];
Rn = ncn[GA_AN][LB_AN];
wanB = WhatSpecies[GB_AN];
tnoB = Spe_Total_CNO[wanB];
Bnum = MP[GB_AN];

l1 = atv_ijk[Rn][1];
l2 = atv_ijk[Rn][2];
l3 = atv_ijk[Rn][3];
kRn = k1*(double)l1 + k2*(double)l2 + k3*(double)l3;

si = sin(2.0*PI*kRn);
co = cos(2.0*PI*kRn);
2034

Is it correct that the phase `kRn' equals not to the scalar product of k-vector by the hopping vector from atom GA_AN to its evaluated neighboring atom LB_AN?
メンテ
Page: [1]

Re: Incorrect Bloch phase factor? ( No.1 )
Date: 2022/02/21 14:08
Name: Naoya Yamaguchi

Hi,

The product of `kRn` and 2π is equal to the R_n・k in eqs. 28 and 29 of http://www.openmx-square.org/tech_notes/tech1-1_2.pdf .

Regards,
Naoya Yamaguchi
メンテ
Re: Incorrect Bloch phase factor? ( No.2 )
Date: 2022/02/21 14:26
Name: Kunihiro Yananose  <ykunihiro@snu.ac.kr>

Dear Malone,

This is just a matter of convention. lattice vector-only convention and convention including atomic position are related by a unitary transformation. They differ only by additional phase factors other than Bloch phase. If the code keeps the consistency of the convention throughout the entire code, there's no problem.

The following document includes this convention issue. It can be helpful.
https://www.physics.rutgers.edu/pythtb/formalism.html
The difference is that the pythtb uses the tight-binding eigenvectors as a wavefunction, whereas openmx uses a full expression for the wavefunctions.

Regards,
K. Yananose
メンテ
Re: Incorrect Bloch phase factor? ( No.3 )
Date: 2022/02/22 09:01
Name: Malone

Thank you very much for comments. Unitary transformation is the way.

メンテ

Page: [1]