Closed hongyi-zhao closed 2 years ago
I haven't used thermo_pw
, but it seems an excellent tool.
I don't know if it can output the LGIRs of energy bands. But I guess the answer may be no, or else there is no need to develop the tool qeirreps
.
As shown by the following flowchart in the qeirreps
paper, it depends on another package, named as qe2respack
, modified from the original version by the authors of qeirreps
to achieve the aim:
In addition, it only targets QE, and is implemented with the compiled language FORTRAN. All these facts make it less satisfactory. OTOH, as I've mentioned here, the Python based irrep
package, which aims to server a more versatile purpose and not restrict the users to a specific DFT code. So, I think it's a good idea to extend/adopt/modify the method implemented in irrep
to generate a trace.txt file so that SpaceGroupIrep
can use it.
It's also possible to extend/adopt/modify the WannSymm
code or post-process its result to generate a trace.txt file.
IMO, being in C makes WannSymm
harder to develop and maintain than if it were in Python. Considering that this type of tool is not computationally intensive, as the DFT codes themselves are, it's best to implement it in object-oriented and interpretative languages such as Python.
It's maybe not necessary to modify WannSymm. Since WannSymm can calculate characters, if enought information are output, only a post-process is needed.
It's maybe not necessary to modify WannSymm. Since WannSymm can calculate characters, if enought information are output, only a post-process is needed.
This requires scrutinizing WannSymm's source code and testing every possible corner case to verify.
I don't know if it can output the LGIRs of energy bands. But I guess the answer may be no, or else there is no need to develop the tool
qeirreps
.
According to my coarse understanding, the LG, i.e., wave vector group corresponding to the translation symmetry in reciprocal lattice/momentum space, while the wave vector star group corresponding to the point symmetry in reciprocal lattice/momentum space. The latter can break the symmetry of the former, thus relates most to dispersion, thermal, and disorder phenomena. Judging by the name of the package, thermo_pw
, it should imply that the author is very concerned about the physical processes and mechanisms related to thermal phenomena, hence, the wave vector star group also should be considered and analyzed.
A quickly digging into the source code of thermo_pw via rg
gives me the following information from here:
Different colors correspond to different irreducible representations of
the point co-group of the {\bf k} or {\bf q} wavevector. To see the
correspondence color-representation see the \texttt{point\_groups.pdf}
manual. The point group used for each {\bf k} or {\bf q} point is
written in the \thermo\ output and also in the plot if you set
\texttt{enhance\_plot=.TRUE.}. In the output you can also find,
close to each band energy or phonon frequency value, the name of the
irreducible representation. Relevant character tables are given in the
\texttt{point\_groups.pdf} manual, in the \thermo\ output, or by the
\texttt{crystal\_point\_group.x} tool.
and here:
The number of the representation and the point co-group of each
{\bf k}-point can be found in the output of \texttt{thermo\_pw}.
These representation numbers refer to the point co-group of each
{\bf k}-point in the slab when you plot the slab band structures and
to the point co-group of each {\bf k}-point in the bulk when you plot
a PBS. Some particular values of $k_z$, such as $k_z=0$
might have a point co-group in the bulk different from the
point co-group of a point with a generic $k_z$ but in this
case the representations are transformed into those of the smaller
group using the group-subgroup relationships and
the symmetry descent of the irreducible representations
(only when \texttt{sym\_divide=.TRUE.}). The representations of the
smaller point co-group have to be used in the PBS input.
In general, the point co-group of a {\bf k}-point
${\bf k}=({\bf k}_\parallel,
k_z)$ with component ${\bf k}_\parallel$ parallel to the surface
and a generic $k_z$ in the bulk is different
from the point co-group of a {\bf k}-point ${\bf k}=({\bf k}_\parallel, 0)$
in the slab. Moreover, experimentally one cannot consider symmetries
of the slab that exchange the two surfaces, and therefore the
point co-group a {\bf k}-point ${\bf k}=({\bf k}_\parallel, 0)$ on the surface
is a subgroup of the point co-group of ${\bf k}=({\bf k}_\parallel, 0)$
on the slab. The point co-group ${\bf k}=({\bf k}_\parallel, k_z)$
in the bulk does not contain operations that exchange $k_z$
with $-k_z$
but it might be larger than the point co-group of
${\bf k}=({\bf k}_\parallel, 0)$ on the surface because
it might contain symmetries of the bulk that require fractional translations
perpendicular to the surface that are not symmetries neither of the slab nor of
the surface.
The point co-group of a given {\bf k}-point ${\bf k}=({\bf k}_\parallel, 0)$
on the surface can be found by removing from the corresponding slab
point co-group the
operations that exchange the two surfaces. It is also the group formed
from the intersection of the point co-group of
${\bf k}=({\bf k}_\parallel, 0)$ in the slab and of the point
${\bf k}=({\bf k}_\parallel, k_z)$ in the bulk.
It is the user responsibility to specify the same number of panels
for the PBS and for the slab calculation and to assure that the
representations plotted in each panel correspond to each other.
Returning to the example of the $(111)$ surface of an fcc, in the direction
$\bar \Gamma-\bar K$ the slab has $C_2$ symmetry about the $x$-axis, a symmetry
that the surface has not. Therefore you can plot with two different colors
the bands that belong to the $A$ or $B$ representations of the slab,
(states even or odd with respect to a $180^\circ$ rotation about
the $x$ axis, an operation that exchanges the two surfaces)
but you cannot separate the PBS into even or odd states with respect to
the $C_2$ symmetry. You might specify two different panels with the
$A$ or $B$ bands in each, but the PBS in the two panels will be the same.
On the contrary, for a {\bf k}-point along the $\bar \Gamma-\bar M$ direction,
the point co-group has the $C_s$ symmetry both for the slab and for
the surface, so you can separate both the PBS
and the surface states in two different panels.
If I understand correctly, it can obtain the information of wavevector star groups internally, at least to some extent. Please correct me if I'm wrong.
Here gives the quantities that THERMO_PW
package can calculate, and here describes the following several tools related to group theory that come with it:
crystal_point_group.x is a crystal point group calculator. It can give several information about the crystallographic point
groups, such as the list of symmetry operations, the product of two rotations, the product table, the class structure, the
character tables of the irreducible representations of the point group and of the double point group and the projective
representations. It gives the list of subgroups and supergroups of a given group and the compatibility tables of a given
group with its subgroups. It can also decompose the Kronecker product representations. Finally it can list the conjugate
groups and calculate the intersection of two point groups. For an example of its use see tools_input/crystal_point_group.in.
kovalev.x writes the correspondence between point group symmetry operations defined in the Kovalev tables and those
used by QUANTUM ESPRESSO.
mag_point_group.x gives a few information on the magnetic point groups.
space_groups.x gives several information on space groups. It can give the names of the space group given the number
reported in the International Tables for Crystallography (ITA), or the number given one of the names, translate the
names between different editions of the ITA tables or the Shönflies name. It gives the list of coset representatives of
each space group and the list of symmorphic space groups. For an example of its use see tools_input/space_groups.in.
Subsequent supplementary and explanations:
It turns out that thermo_pw
really can output the complete little group irreducible representations. Please refer to the developer's reply below.
Can thermo_pw output the complete little group irreducible representations?
from: | Andrea Dal Corso
The answer is yes. On output you find the irrep of each group of bands along the symmetry lines.
The names of the representations and corresponding character tables, also for projective
representations, are reported in the thermo_pw/Doc/point_group.pdf file that you can obtain
by generating the documentation of thermo pw.
Just write make inside thermo_pw/Doc directory.
Andrea
===================
from: | Andrea Dal Corso
Dear Prof. Hongyi Zhao,
Thank you very much for your interest in the thermo_pw package. I have seen the new works on the detection of irrep
of bands and phonon, although I have not yet studied them the details so far.
Thermo_pw implements the theory reported in the book:
S. K. Kim, ‘Group Theoretical methods and applications to molecules and
crystal’, Cambridge University Press, Cambridge (1999).
It is currently working for all k points of the Brillouin zone, both inside and at zone
border for all space groups.
It's main limitation is that it is not supporting the use of operations that require
time reversal in magnetic points groups. In that case it classifies the bands using
only the operations that do not require time reversal.
All the existing documentation on the thermo_pw implementation is in the thermo_pw/Doc/point_groups.pdf file.
Please let me know if you find inconsistencies or problems or if you need further help to make the code running.
Best Regards,
Andrea
If I understand correctly, it can obtain the information of wavevector star groups internally, at least to some extent. Please correct me if I'm wrong.
There is no concept called "wavevector star group". There are only "wavevector group" and "wavevector star".
It should be noted that there are two different concepts: the IR of LG and the IR of SG, and the latter is the induced representation of the former. When talking about one k-point in the bands, only the concept of LG IR is needed. And only when talking about SG IR, wavevector star is needed.
It turns out that
thermo_pw
really can output the complete little group irreducible representations. Please refer to the developer's reply below.
I think, one can only say that thermo_pw
outputs the necessary information which can be used to construct the LGIR. But it does not give the LGIR directly.
I have glanced over the thermo_pw/Doc/point_group.pdf file. It only gives the character tables of point group, not the LG. For example, if I want to know the LGIR of the W point (BC coordinates are {3/4,-1/4,-1/4}) of the SG 73 (Ibca), I can use the following command to obtain it in SpaceGroupIrep: And I can also obtain it on the BCS website (note that the BCS coordinates of W is {1/2,1/2,1/2} ): But, I can not fiind its character table in the thermo_pw/Doc/point_group.pdf file. The little co-group of the LG of W is D2, what I can see in pw/Doc/point_group.pdf file is only the following information about the D2 point group However, the above character table of D2 can not be directly used for the LG of W. Because one can see from the results of both SpaceGroupIrep and BCS that there are only 1 single-valued LGIR and 4 double-valued LGIRs for the LG of W. However, the point-group character table of D2 in pw/Doc/point_group.pdf gives 4 single-valued IRs and 1 double-valued IR. These are totally different.
Still be that word, if thermo_pw
outputs the LGIR directly, there is no need to develop the tool qeirreps
.
If I understand correctly, it can obtain the information of wavevector star groups internally, at least to some extent. Please correct me if I'm wrong.
There is no concept called "wavevector star group". There are only "wavevector group" and "wavevector star".
Thank you very much for your correction.
It should be noted that there are two different concepts: the IR of LG and the IR of SG, and the latter is the induced representation of the former.
I see. The representation of the IR of SG is constructed using the subgroup of IR of LG. Therefore, the name LG is used because it is a subgroup corresponding to SG.
When talking about one k-point in the bands, only the concept of LG IR is needed. And only when talking about SG IR, wavevector star is needed.
This reminds me the following fact: The trace.txt
is required only when obtaining the LG IRs of energy bands, as noted in the section 8 of your paper.
I have glanced over the thermo_pw/Doc/point_group.pdf file. It only gives the character tables of point group, not the LG. For example, if I want to know the LGIR of the W point (BC coordinates are {3/4,-1/4,-1/4}) of the SG 73 (Ibca), I can use the following command to obtain it in SpaceGroupIrep:
And I can also obtain it on the BCS website (note that the BCS coordinates of W is {1/2,1/2,1/2} ):
Thank you for the concrete comparison example. I checked the corresponding data in the supplementary material, as shown below:
I want to know if I can let SpaceGroupIrep
give the BC and BCS related information within one command.
Still be that word, if
thermo_pw
outputs the LGIR directly, there is no need to develop the toolqeirreps
.
I appreciate your verification and confirmation again.
I want to know if I can let
SpaceGroupIrep
give the BC and BCS related information within one command.
Of course you can.
showKptBCStoBC[73]
showKptBCStoBC[73,"b"]
showKptBCStoBC[73,"c"]
showKrepBCStoBC[73]
showKrepBCStoBC[73,"b"]
showKrepBCStoBC[73,"DSG"->True]
showKrepBCStoBC[73,"b","DSG"->True]
...
See sec.9 of the paper.
If I understand correctly, it can obtain the information of wavevector star groups internally, at least to some extent. Please correct me if I'm wrong.
There is no concept called "wavevector star group". There are only "wavevector group" and "wavevector star".
BTW, I'm not sure if you have noticed the comment I posted here about the so-called wave vector substar group:
OTOH, I also noticed the paper Wave vector substar group in reciprocal lattice space and its representation, which defined the wave vector substar group as follows:
I'm not sure if you've had proper research and consideration in this regard.
BTW, I'm not sure if you have noticed the comment I posted here about the so-called wave vector substar group:
OTOH, I also noticed the paper Wave vector substar group in reciprocal lattice space and its representation, which defined the wave vector substar group as follows: I'm not sure if you've had proper research and consideration in this regard.
The so-called wave vector substar group is a new concept aiming to study symmetry breaking and phase transition as its authors claim. I have not researched in this field.
Your paper described the following edge case, which hasn't been implemented in most DFT codes:
In fact, there is an excellent package, named as thermo_pw created by Prof. Andrea Dal Corso, which has implemented the missing feature mentioned in your paper. See the following information retrieved from the source code of thermo_pw and the discussion here for more details:
Regards, HZ