irreducible-representations / irrep

GNU General Public License v3.0
62 stars 31 forks source link

Facing some issues to calculate the C3z eigen value for some bands at some specific k-points #62

Open ziaqau opened 1 year ago

ziaqau commented 1 year ago

Dear irRep users, I want to compute the C3z eigenvalues of a band or set of bands (say band 2927,2928) with IrRep at some k-points (say G,K and K'). In this context, i calculated the WAVECAR at these three k-points using VASP and then run the IrRep code with the command line "irrep -isymsep=2 -spinor -code=vasp -Ecut=100 -EF=-1.10232822 -kpoints=1,3 -IBstart=2927 -IBend=2928 > out". After running this command line i got an output file "out" in my working directory containing some important information. Now I have the following confusion, for which I need your kind help to understand:

  1. Firstly, I encountered an error message on my shell terminal while running the above command (please see the attached snapshot). Please have a look and help how can i remove this error.
  2. Secondly, Please have a look at my "out" file and show me the specific location where the eigen values of the C3z operator for bands 2927 and 2928 are written or printed in this file. I expect the eigen values of the C3z operator to be in complex form (such as exp(±iπ/3)). However, I did not come across any complex values in the "out" file.
  3. Thirdly, according to documentation, the C3z eigen value is not accurate in case of VASP while it is accurate in case of using ABINIT code. Please comment about it. I would be highly thankful to you in this regard. Thank You and looking forward for your nice response.

out.zip Error

stepan-tsirkin commented 1 year ago

Hi, if you run it without -isymsep, does it give the output without error messages? Can you show it?

ziaqau commented 1 year ago

Hey Stepan, First of all thanks for your quick response. Yes, when I run it without -isymsep tag, it give the output without any error message on the terminal. I am attaching the "out" and "trace.text" file, you can have a look. Thank You out.zip trace.zip

stepan-tsirkin commented 1 year ago

Good, Now you can see the symmetry eigenavlues at each point. You do not need isymsep to get symmetry eigenvalues. isymsep is needed to separate the subspaces byt diagonalising a symmetry operator, and further investigate them. I am not sure why exactly it failed in your case.

C3z eigenvalues should be accurate with VASP. The separation into subspaces may be in accurate with PAW, because the planewave basis does not completely represents the wavefunctions. With norm-conserving pseudopotentials the planewaves describe the WFs correctly. (But VASP does not have norm-conserving). But this does not affect the eigenvalues of symmetry operations.

Did I answer your questions?

ziaqau commented 1 year ago

Thank you for your clear and informative explanation. I got all of your points. I have one further question and would greatly appreciate your assistance: I am specifically interested in obtaining the eigenvalue of C3z, rather than its trace. Do you think that without using the "isymsep" tag, the "irRep" code can provide the eigenvalue of C3z instead of its trace? Thank You

stepan-tsirkin commented 1 year ago

the individual eigenvalues for degenerate states are not defined in principle. because if you apply a unitary rotation to a set of degenerate states, you get a valid set of states. Say, you have 2 states with eigenvalues +1 and -1 . Then you can apply a unitary rotation and get states with eigenvalues zero, or any other numbers which add up to zero.

At gamma point you have trace for C3z is -2, so you may assume those are two states with eigenvalues -1 .

For second k-point the code does not detect a C3 symmetry. I guess it is because you need to specify more digits in the coordinatesof the k-point (write 0.333333333 instead of 0.33333)