Z2PackDev / Z2Pack

A tool for calculating topological invariants.
https://z2pack.greschd.ch
GNU General Public License v3.0
81 stars 51 forks source link

Mirror chern number using quantum espresso and Z2Pack. #173

Open Bikashpatraphy opened 1 year ago

Bikashpatraphy commented 1 year ago

Dear developer, I am trying to calculate the mirror Chern number using Quantum Espresso version 5.3 and Z2Pack. I have reproduced the SnTe example. Is the recent version of Quantum Espresso compatible with pw2z2pack.f90? Is there any restriction on the number of atoms per atom type in the unit cell for calculating the mirror Chern number?

greschd commented 1 year ago

Is the recent version of Quantum Espresso compatible with pw2z2pack.f90?

I'm not sure, but would be somewhat surprised if it was directly compatible. I haven't really modified the pw2z2pack code since it was originally written (by Gabriel Autès), and it was based on the pw2wannier90 version then included in QE. So any changes in interface that pw2wannier90 had since then would likely need to be ported to pw2z2pack.

Is there any restriction on the number of atoms per atom type in the unit cell for calculating the mirror Chern number?

Not that I'm aware of.

sakshi2001verma commented 3 weeks ago

Dear Developer, I am trying to calculate the mirror Chern number for Sn1-xBixTe type of systems (like SnTe only) using QE and z2pack. I have reproduced the results for SnTe case. However, for Sn1-xBixTe, the calculation is not ending (it has been running for 6-7 days). I have used the same convergence parameters as for the SnTe case. How to efficiently calculate the mirror Chern number in my case?

greschd commented 3 weeks ago

How is the alloy structure defined for Sn1-xBixTe? Is it using a special quasi-random supercell (SQS), or something else?

In which way is it not converging? Are the individual calculation steps taking much longer, or many more calculations performed?

The first thing to check with convergence issues in specific areas of the calculation is whether the band gap may actually be closed somewhere.

sakshi2001verma commented 3 weeks ago

Thanks for replying.

I have made the structure manually.

From the scf output file, I have selected isym = 7 (to put in pw2z2+i.in and pw2z2-i.in files) which looks like this: isym = 7 inv. 180 deg rotation - cart. axis [1,0,1]

cryst. s( 7) = ( 1 -1 0 ) ( 0 -1 0 ) ( 0 -1 1 )

cart. s( 7) = ( -0.0000000 0.0000000 -1.0000000 ) ( 0.0000000 1.0000000 0.0000000 ) ( -1.0000000 0.0000000 -0.0000000 )

Finally in the python script, I have the following convergence parameters and surface: settings = { 'num_lines': 21, 'pos_tol': 1e-2, 'gap_tol': 0.2, 'move_tol': 0.3, 'iterator': range(10, 36, 4), 'min_neighbour_dist': 2e-2 } surface = lambda s, t: [s, t, s]

And this is what I got in the pw2z2.log file at the end: Error: found 31 states with sym eig= 0.00000000 1.00000000 for kpoint 1 -->expecting 98 states. Check that the plane is symmetric under inv. 180 deg rotation - cart. axis [1,0,1] and that 0.00000000 1.00000000 is a symmetry eigenvalue.

I was trying different surfaces when this error came. I tried [s,0,t] also but that's not ending and I have to manually kill the calculation. I am new to Z2Pack so I am unaware actually on how to set these parameters and surfaces.

greschd commented 2 weeks ago

Unfortunately, the support I can provide for the pw2z2pack program is quite limited; it was written by a colleague, and I know only roughly what it is meant to do. I don't have the capacity to dive into the code myself.

Overall, what this error message is telling you is that the given k-point has wrong / insufficient symmetry w.r.t. the listed symmetry operation.

One thing does stick out to me which may cause confusion: It appears (purely from the output above) that pw2z2pack uses cartesian coordinates. Do note that Z2Pack always uses reduced coordinates for the definition of surface = lambda s, t: [s, t, s]. Maybe that's the root of the confusion. In any case, double-check that the defined plane is indeed invariant under the given rotation.

sakshi2001verma commented 2 weeks ago

I understand.

Also, is there any way I can use the Sn1-xBixTe_hr.dat file for further calculating mirror Chern number using Z2Pack? Essentially, how to calculate MCN using tb model instead of fp model?

greschd commented 2 weeks ago

Sure, you can use the facilities in TBmodels for reading Wannier90 output: https://tbmodels.greschd.ch/en/latest/tutorial.html#using-wannier90-output https://tbmodels.greschd.ch/en/latest/reference.html#tbmodels.Model.from_wannier_files