Possible bug in vmewan2bloch
Posted: Tue Aug 31, 2021 9:56 am
Dear developers,
I would like to report a possible bug in the degeneracy-lifting part of vmewan2bloch. AFAIU, it diagonalizes the velocity matrix within the degenerate subspace.
The relevant part of the code is https://gitlab.com/QEF/q-e/-/blob/devel ... L1240-1318
Suppose bands 1, 2, 3 are degenerate. Then, the code above sets
while what seems natural is
Is this a bug, or is it intended?
Is there a reference (paper or preprint, code comment, commit message, etc) where this part of the code is explained?
I would like to report a possible bug in the degeneracy-lifting part of vmewan2bloch. AFAIU, it diagonalizes the velocity matrix within the degenerate subspace.
The relevant part of the code is https://gitlab.com/QEF/q-e/-/blob/devel ... L1240-1318
Code: Select all
ijbndc = 0
DO ibnd = 1, nbnd
DO jbnd = 1, nbnd
IF ((list_dup(ibnd) == ideg) .AND. (list_dup(jbnd) == ideg)) THEN
ijbndc = ijbndc + 1
jbndc = deg_dim(ideg) - MOD(ijbndc, deg_dim(ideg))
ibndc = INT((ijbndc - 1) / deg_dim(ideg)) + 1
vmef_deg(:, ibndc, jbndc) = vmef(:, ibnd, jbnd)
ENDIF
ENDDO
ENDDO
Code: Select all
vmef_deg(:, 1, 2) = vmef(:, 1, 1)
vmef_deg(:, 1, 1) = vmef(:, 1, 2)
vmef_deg(:, 1, 3) = vmef(:, 1, 3)
Code: Select all
vmef_deg(:, 1, 1) = vmef(:, 1, 1)
vmef_deg(:, 1, 2) = vmef(:, 1, 2)
vmef_deg(:, 1, 3) = vmef(:, 1, 3)
Is there a reference (paper or preprint, code comment, commit message, etc) where this part of the code is explained?