[QE-users] symmetry traces in sym_band.f90

Gerson J. Ferreira gersonjferreira at ufu.br
Tue Mar 8 11:08:20 CET 2022


Yes, you are right. The first examples I gave above were 2x2 single group
matrices, but for the numerical case I only had the spinful double group
ready to show, but I guess it was clear enough for the discussion.

Yes, I know what a non-symmorphic symmetry is. My python code calculates
the matrix representations of generic symmetry operations {S,tau}, where S
is the point group rotation and tau is a possible fractional translation.
But it is still under development, we are testing it for different
materials to make sure it works, and that's why it is not public on github
yet. We'll make it public once we have a first version and a draft of the
paper ready.

The problem with my python code is that it is too simple. It does the
calculation using QE plane waves and does not carry the PAW or US
pseudo-potential corrections. For PAW pseudos we the matrix elements must
be corrected by the partial-waves, pseudo-partial-waves and projectors,
while for US pseudos we have to account for the overlap matrix S. I'm not
account for these, and I have the impression that for symmetry operators
these corrections are not necessary, since the plane waves should obey the
symmetry constraints with and without the corrections. But I'm not 100%
sure yet.

In any case, the plan is to drop this python code and implement the same
thing directly in QE's sym_band.f90 (or a nearly equal new routine). That's
why I'm currently studying it. If I cannot make it work with sym_band.f90,
then I'll use my current python code.

For this purpose, I need to understand where exactly lies the limitation of
sym_band.f90 regarding non-symmorphic symmetries. I'm studying the code,
but if some could give me some hints, I would appreciate it!

Best,
--
Gerson J. Ferreira
Prof. Dr. @ InFis - UFU
----------------------------------------------
gjferreira.wordpress.com
Institute of Physics
Federal University of Uberlândia, Brazil
----------------------------------------------


On Tue, Mar 8, 2022 at 12:10 AM Hongyi Zhao <hongyi.zhao at gmail.com> wrote:

> On Tue, Mar 8, 2022 at 1:16 AM Gerson J. Ferreira
> <gersonjferreira at ufu.br> wrote:
> >
> > Thanks Hongyi, this SpaceGroupIrep seems quite interesting. But still,
> it does not do what I need. At least, reading their documentation, I don't
> see the feature I need there.
> >
> > Please notice that these matrix representations in your print screen are
> not unique. It depends on the basis. Let me give you an example with
> graphene's Dirac bands. Let's focus on the spinless single group
> description and look only at the operation C3(z) for simplicity. We know
> that the wave-functions that compose the Dirac bands transform as the E''
> of D3h. The quadratic functions that form a basis for this irreps are (xz,
> yz) [1]. But it can be any orthogonal set of linear combinations of xz and
> yz. For instance:
> >
> > a) If we choose the basis set as (xz, yz), the C3(z) operation will be
> defined by the matrix (θ = 2pi/3)
> >
> > | cos(θ) -sin(θ)|
> > | sin(θ)  cos(θ)|
> >
> > b) If we choose the basis set as ((x+iy)z, (x-iy)z) the same C3(z)
> operation becomes represented by a diagonal matrix
> >
> > |exp(iθ)  0|
> > |0 exp(-iθ)|
> >
> > These are equivalent representations (up to an unitary transformation)
> of C3(z) under the E'' irrep of D3h. Both have the same trace.
> >
> > Now, the wave-functions from QE are represented by which of these? The
> answer is none. The wave-functions are numerical iterative solutions, while
> they do transform as E'', their particular matrix representation is not set
> to a particular choice as above, but it is "randomly" set by the numerical
> diagonalization. I have such a matrix for the spinful case here as an
> example:
> >
> > Each term represents the (real,imag) part of the matrix element, the
> trace is -1, as expected.
> >
> > (-0.90669010, 0.04976980) ( 0.01401095,  0.01512965) ( 0.07246659,
> 0.14059376) (0.33126319, 0.20064275)
> > (-0.01401095, 0.01512965) (-0.90669008, -0.04976981)
> (-0.05308625,-0.38363353) (0.10041187, 0.12221076)
> > ( 0.06736942,-0.11163651) ( 0.33090807,  0.22024838) (
> 0.40669008,-0.73549409) (0.27342455, 0.20947503)
> > ( 0.33326797, 0.21666087) ( 0.07583922, -0.10606489) (-0.27342455,
> 0.20947504) (0.40669010, 0.73549410)
> >
> >
> > This matrix was calculated with the code I've set in the previous email.
> So, it's neither (xz, yz) nor ((x+iy)z, (x-iy)z) (times spin), but
> nonetheless, it is a representation of E'', as checked by the trace of this
> and other symmetry operations of D3h.
>
> If I understand correctly, your previous example is based on
> 2-dimensional complex matrices, while this is a 4-dimensional one. So,
> the latter should correspond to a double group representation.
>
> > So, I need these ugly matrices that characterize the numerical
> wave-functions of QE to later rotate them to match my choice, which in this
> case will be ((x+iy)z, (x-iy)z) (times spin). Got it? Essentially, I need
> to find the unitary transformation that takes the QE numerical
> wave-functions to the simple form of ((x+iy)z, (x-iy)z) (times spin).
>
> If I understand correctly, in order to find the underlying unitary
> transformation, you must first do a direct product decomposition of
> the spin-orbit coupling double groups.
>
> > I don't think that there is a code that does this for me already. But
> I'll check again the links you sent me before just to be sure.
>
> I know another package, namely wannsymm [1], which seems to be able to
> do similar things. But I'm not sure if it meets the specific needs
> you're discussing here.
>
> > Now, regarding the limitation of the zone border for nonsymmorphic
> symmetries, indeed this is an issue for me. That's what I'll check now. Is
> this limitation related to the part of the code that calculates the matrix
> elements? Or does it apply only to the second part that identifies the
> irreps? If the routine "rotate_all_psi" works for the non-symmorphic cases,
> then it should work fine for my needs. I'll try the code for a
> non-symmorphic case to see how it goes.
> >
> > Do you know where exactly this limitation is for nonsymmorphic
> symmetries?
>
> Nonsymmorphic symmetry includes screw axes or glide planes, which are
> a combination of point symmetry and translational symmetry.
>
> A few days ago, I discussed some related problems [2-3], and I know
> that the thermo_pw package [4] has implemented the feature discussed
> here. As for the specific implementation details, application
> scenarios and whether they can solve the relevant limitations you
> mentioned here, I don't know
>
>
> [1] https://github.com/ccao/WannSymm
> [2] https://gitlab.com/QEF/q-e/-/issues/458
> [3]
> https://github.com/goodluck1982/SpaceGroupIrep/issues/6#issuecomment-1025108583
> [4] https://dalcorso.github.io/thermo_pw/
>
>
> Best,
> Hongyi
>
> >
> > [1]
> http://symmetry.jacobs-university.de/cgi-bin/group.cgi?group=603&option=4
> >
> > Best,
> > --
> > Gerson J. Ferreira
> > Prof. Dr. @ InFis - UFU
> > ----------------------------------------------
> > gjferreira.wordpress.com
> > Institute of Physics
> > Federal University of Uberlândia, Brazil
> > ----------------------------------------------
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.quantum-espresso.org/pipermail/users/attachments/20220308/b0fa20bc/attachment.html>


More information about the users mailing list