-
Notifications
You must be signed in to change notification settings - Fork 52
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Wannier sectors #89
Comments
Sure! The physical background is that you have a symmetry that maps k into itself - for some subset of the Brillouin zone, for example a mirror plane. Because the Hamiltonian and symmetry commute, you can simultaneously diagonalise them - in other words, the Hamiltonian is block-diagonal w.r.t. the symmetry eigenspaces. To compute the topological invariants corresponding to each symmetry eigenvalue, you just restrict the calculation to the symmetry eigenspace. You can do this, as long as you know the symmetry representation in the basis you're using. It's all pretty nicely described in this semester thesis: semester_thesis_tmetger.pdf |
Thank you very much for the answer. Reading this paper really helped. I'm trying this with a ''simple'' example of calculating the spin Chern number for the Kane-Mele model. As found in the examples folder, we can define the following:
Now the symmetry part should be something as:
Then onde could simply do:
This gives me the following :
which should be integers Am I missing something in this representation of the symmetry ? |
I think the problem here is that time-reversal maps k onto -k. So on any surface you choose, it will not map a given k back into itself. Note that the method actually relies on this: at each k, the Hamiltonian needs to commute with the symmetry to become block-diagonal. I think the same is true for In principle it is possible to separate the Hilbert space according to symmetry eigenvalues even if they are not local in k, but that isn't implemented here (it would be a "global" operation, if you will). But again, time-reversal is a special case: We put a very short explanation of that in Appendix F of the Z2Pack paper. |
Thank you very much |
Sorry to reopen this. I'm very interested in the symmetry projection feature and trying to do a similar implementation on other codes that use Quantum Espresso projections on atomic wavefunctions. The remaining question is: Given a calculation with SOC in QE and the projection in atomic wavefunctions (as given by projwfc.x), how can I write the mirror operator ? or any other rotation operator. My attempt is: Since projwfc gives me the wfc on the |j,m> basis, I should write the angular momentum operators J_x, J_y, and J_z for a given j and m. For example, consider a system with mirror symmetry in the y-axis, the M_y operator (mirror y) would be given by using J_y and theta = pi for building the D matrices. For a system with wfc order as j=0.5, j=1.5 this would be M_y = diag(D_0.5,D_1.5). Is there any special consideration regarding the |j,m> basis in QE ? I would appreciate any help. |
I'm not entirely sure if it's what you're trying to do, but the symmetry-representation code can generate representation matrices from the symmetry + orbital information. The only special consideration I can think of is |j,m> not being an orthogonal basis, but I think you're already aware of that (#79). |
Thank you very much, the code is truly helpful. I managed to construct the matrices. |
Fantastic! Out of curiosity: did you end up using the https://github.com/Z2PackDev/Z2Pack/tree/dev/symmetry branch? If so, how did it work for you? |
Sorry for the late response I'm testing the symmetry feature with M. Ezawa's TCI model with C4 symmetry. This TCI phase is protected by mirror-z symmetry which the author writes as Setting up the Pauli matrices as:
To implement the model I use:
The symmetry is then Then I wish to compute the mirror Chern number wich is given by Therefore, we should project the result into the +i and -i eigenspaces and compute the individual Chern numbers. This could be done by:
To compute the Chern numbers I use:
In the above I'm using some parameters given by the author in Fig. 3(d3) which he suggests that yields C_M = 2. First I noticed that in the symmetry features, eigenvalues are computed using Even after changing the diagonalization algorithm to Can you help me ? |
Hi @bfocassio, thanks for the report! I'll have to dig into this a bit to see what's going on. Just to manage expectations: It'll probably take a week or two until I get around to having a closer look at this. |
Can you explain how does the pw2z2pack code perform the separation of Wannier eigenstates into two symmetry sectors or give me any reference to understand how to perform such separation? (The physicis behind it) How one can separate the Wannier eigenstates into two sectors for computing the mirror Chern number or spin chern number?
Is it possible to do such thing using Hamiltonians in z2pack?
The text was updated successfully, but these errors were encountered: