[QE-users] symmetry traces in sym_band.f90
Hongyi Zhao
hongyi.zhao at gmail.com
Mon Mar 7 16:13:42 CET 2022
On Mon, Mar 7, 2022 at 8:58 PM Gerson J. Ferreira
<gersonjferreira at ufu.br> wrote:
>
> Easy answer first: I'm sorry for the formatted code. I've copy/pasted directly from the VSCode and it went like this. It was not on purpose, just a lack of attention to detail.
>
> Now regarding the irreps, notice that you are describing the characters of the representations, and not the matrices. I agree that if all we want is to identify the irreps that describe each band, it is sufficient to look at the characters / trace, and that's what the sym_band.f90 routine already does.
>
> These traces are invariant under unitary transformations (change of basis), but the full matrix representation DΓ(S) for S in G is not. In other words, let's call A a 2x2 matrix representation of the C3(z) operator under a certain basis set {ψ0, ψ1}, which transforms as some irrep Γ. If U is an unitary transformation that gives a new basis (within the same subspace) denoted {ϕ1, ϕ2} = U ⋅ {ψ0, ψ1}, then under this new basis the matrix representation of C3(z) becomes B = U.A.U†, which is also a rep of the same irrep Γ, same traces.
>
> I need the full matrices DΓ(S), and not just the characters / trace, because I need to make sure that numerical wave-functions from QE match the representations I'll use later in a separate python code. Is it clear now?
It seems that you want to obtain all matrices corresponding to each
element of the irreducible representation of a small group. As far as
I know, the SpaceGroupIrep [1] package can do this and has an
interface with vasp. But unfortunately, there is only an interface to
vasp so far. You can see the screenshot to get a preliminary
impression, where I do a simple test with the space group of Graphene
191, which belongs to the D_3h point group [2]. And please see here
[3] for some related discussions.
> So I'm editing this routine to get what I need.
As I've mentioned as the first reply to you in this thread, the
corresponding processing for the following edge cases has not been
implemented so far in the "./PP/src/sym_band.f90" routine:
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
SUBROUTINE find_band_sym_so (ik,evc,et,nsym,s,ft,d_spin,gk, &
invs,rap_et,times,ngroup,istart,accuracy)
!
! This subroutine finds the irreducible representations of the
! double group which give the transformation properties of the
! spinor wavefunctions evc.
! Presently it does NOT work at zone border if the space group of
! the crystal has fractionary translations (non-symmorphic space groups).
!
!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
> Regarding the bug, don't worry. One of the QE devs has already replied to me. It is indeed a bug in the D_3h classes that was unnoticed because both s_v and s_h classes have characters equal to zero in the double group, so it does not affect the identification of the irreps. I'll try some suggestions he sent me to fix this.
>
> But if you want to reproduce this, simply run bands.x for graphene (full relativistic) or any other D_3h material and use the sym_band.f90 file attached here. But notice that in this code I'm printing a bunch of stuff to stdout for testing purposes. The relevant section for this bug is between lines 870--876.
Do you mean: in order to the test described by you, I should use the
attached sym_band.f90 in combination with the patched version of
PW/src/divide_class_so.f90 shown by your in another mail of this
thread, i.e., changing the line 653 into the following?
IF (nelem(iclass)>2) THEN
[1] https://github.com/goodluck1982/SpaceGroupIrep
[2] https://materialsproject.org/materials/mp-568806/
[3] https://github.com/goodluck1982/SpaceGroupIrep/issues/11#issuecomment-1030838258
Best,
Hongyi
-------------- next part --------------
A non-text attachment was scrubbed...
Name: image.png
Type: image/png
Size: 289288 bytes
Desc: not available
URL: <http://lists.quantum-espresso.org/pipermail/users/attachments/20220307/09a91e7b/attachment.png>
More information about the users
mailing list