[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