[QE-developers] Potential Issue with Inversion Symmetry Detection in ph.x
Phil Wang
ywang393 at jhu.edu
Sat Aug 1 08:53:45 CEST 2020
Dear developers of QE,
Hope you are all doing well in this hard time!
I'm trying to fix conflictions between the k-point branch and the phonon code (Merge Request !292). As I was debugging the search of small group of q points, I found the inversion detection of ph.x could get wrong result. The part of the code is in LR_Modules/set_small_group_of_q.f90, Line 54 - Line 62:
nsymq = copy_sym ( nsym, sym )
!
CALL inverse_s ( )
!
! check if inversion (I) is a symmetry. If so, there should be nsymq/2
! symmetries without inversion, followed by nsymq/2 with inversion
! Since identity is always s(:,:,1), inversion should be s(:,:,1+nsymq/2)
!
invsymq = ALL ( s(:,:,nsymq/2+1) == -s(:,:,1) )
Since the list of sym ops in s(:,:,48) has been rotated by copy_sym() once for each distinct q point, there is no guarantee that inversion symmetry must sit at "nsymq/2 + 1". It's true only if copy_sym() is called once on s(:,:,48).
As an example, I ran phonon on Si with a 4x4x4 q point grid. The small group of (0.5,-0.5,0.5) had inversion, but it's listed at 9 out of 12 operations. Invsymq was subsequently set to .False.. The list of sym. ops. for small group of this q, in the order after calling copy_sym(), is:
identity
inv. 180 deg rotation - cart. axis [-1,0,1]
120 deg rotation - cart. axis [-1,1,-1]
inv. 180 deg rotation - cart. axis [1,1,0]
120 deg rotation - cart. axis [1,-1,1]
inv. 180 deg rotation - cart. axis [0,1,1]
180 deg rotation - cart. axis [0,1,1]
inversion
180 deg rotation - cart. axis [-1,0,1]
180 deg rotation - cart. axis [1,1,0]
inv. 120 deg rotation - cart. axis [1,-1,1]
inv. 120 deg rotation - cart. axis [-1,1,-1]
A simple fix would be to replace the line "invsymq = ALL ( s(:,:,nsymq/2+1) == -s(:,:,1) )" by an iteration over the first nsymq operations of s(:,:,48). Although this invsymq is not propagated to other routines, it might be worth checking similar places of searching inversion in other parts of phonon code / LR code.
The confliction of git branch "k-point" is almost fixed, and a detailed description can be found at: https://arxiv.org/abs/1907.13610. Any opinion and suggestion on its integration with QE are welcomed and appreciated!
Best wishes,
Yunzhe (Phil) Wang
Mueller Research Group
Department of Materials Science and Engineering
Johns Hopkins University
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.quantum-espresso.org/pipermail/developers/attachments/20200801/101a7118/attachment-0001.html>
More information about the developers
mailing list