Z2PackDev / Z2Pack

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

Can the Z2pack run well with Quantum Espresso 6.6 #107

Closed ybfu closed 3 years ago

ybfu commented 3 years ago

Recently I am learning to use Z2pack to investigate 1D GNRs. But I have some problems when I start the example of Bismuth by using QE6.6 with Wannier90​ on HPC.

The error is: AttributeError: 'NoneType' object has no attribute 'find'. I checked it from the Internet, it seems there are many different reasons. I checked the position of 'find'. It is in this part:

Copying the lattice parameters from bi.save/data-file.xml into bi.win

cell = ET.parse('scf/bi.save/data-file-schema.xml').find('CELL').find('DIRECT_LATTICE_VECTORS') unit = cell[0].attrib['UNITS'] lattice = '\n '.join([line.text.strip('\n ') for line in cell[1:]])

I checked the data-file.xml and found the 'cell' part but no 'DIRECT_LATTICE_VECTORS' part. So it is because of the absence of 'DIRECT_LATTICE_VECTORS' part that causes the error? Or somebody has better suggestions?

I also checked the example of the folder in z2pack and found that the Quantum Espresso version is 5.1.1, which is an older version compared with version 6.6. Therefore, the data-file.xml should be the data-file-schema.xml file (I just changed). Also, the content of the .xml file in version 5.1.1 is quite different from version 6.6. I cannot find the keyword 'DIRECT_LATTICE_VECTORS'. Also, I'm not sure the following unit and lattice data will be correct.

Here is the part of 'cell' from the data-file-schema.xml file:

4.295328085621208e0 -2.479908826490989e0 7.471943357036477e0 0.000000000000000e0 4.959817652981312e0 7.471943357036477e0 -4.295328085621208e0 -2.479908826490989e0 7.471943357036477e0

No "LATTICE" information was found.

greschd commented 3 years ago

This error occurs because the format of the XML file has changed in newer versions of QE. Can you try this example instead, which is tested with the 6.2 version?

ybfu commented 3 years ago

Thank you very much for your reply. Yes, now the lattice parameters can be copied to nscf and pw2wan file. However, I met some new errors.

  1. The default pseudopotential (Bi_MT_PBE.UPF) cannot be reachable by QE6.6. I changed the authority but it is not working. So I changed it to Bi_pbe_v1.uspp.F.UPF (from SSSP). It is working well. So my first question is that does the calculation sensitive to pseudopotential? I think it can run with any proper pseudopotential, correct?

  2. Then the scf calculation is running well. I met the second error: /bin/bash: /sw/installed/Wannier90/2.1.0-intel-2019b/wannier90.x: No such file or directory Traceback (most recent call last): File "/home/yfu/.local/lib/python3.7/site-packages/z2pack/fp/_read_mmn.py", line 16, in get_m with open(mmn_file, "r") as f: FileNotFoundError: [Errno 2] No such file or directory: '/home/h5/yfu/Test1/build/bi.mmn' I checked the build folder and found that the nscf and pw2wan calculation went wrong. The error in pw.log is: Error in routine c_bands (1): too many bands are not converged And the error in pw2wan.log is: Error in routine pw2wannier90 (1): Could not find the file bi.nnkp So my question for this part is: does the nscf and pw2wan file runs simultaneously or separately? I think first the nscf file runs then the pw2wan, is it correct? For the error of nscf calculation I tried to decrease the conv_thr and it finished normally. But the error from the pw2wannier90 is still there and I'm not very familiar with Wannier90. Would you mind to give me some suggestion?

Thank you very much in advance.

greschd commented 3 years ago
  1. Yes, any suitable pseudopotential will work with Z2Pack. Of course the usual considerations about the effects of different pseudopotentials still apply.
  2. The following seems to imply that the Wannier90 executable was not found: /bin/bash: /sw/installed/Wannier90/2.1.0-intel-2019b/wannier90.x: No such file or directory. Since Wannier90 is needed to produce the .nnkp file that pw2wannier90 uses, that would also explain the subsequent failure in pw2wannier90.
ybfu commented 3 years ago

Thank you very much for your reply. I checked the directory of wannier90.x and found it is in the /bin folder. Therefore I changed the wandir to "{0}/bin".format(os.getenv('EBROOTWANNIER90'))'. Now it is working. I can get results but I faced many errors. Also, I have some questions.

  1. The first error is the kpoints for Wannier90. Here it is: Error in routine pw2wannier90 (512): Wrong number of k-points Then I added the keyword "nosym=.true." in nscf file and the error was solved. But the second error comes out: Error in routine c_bands (1): too many bands are not converged I decreased the conv_thr to 1e-5 and the error was solved. But I think such low convergence criteria are not appropriate for the following calculations, is it correct? For this problem, I think I should test the scf and nscf calculations first.

  2. I also have some questions for the kpoints setting. I found that there are only 9 kpoints(along the Z-direction) in nscf and wannier calculation. So is there any special request(high-density kpoints, along with high symmetric directions) for the kpoints setting? In the future I will mainly calculate 1D system, is it OK to just set the kpoint from G to X direction?

  3. Then the z2pack runs and finished normally, but there are some warnings: WARNING: 'min_neighbour_dist' reached: cannot add line at t = 0.18125000000000002 WARNING: 'min_neighbour_dist' reached: cannot add line at t = 0.26875000000000004 WARNING: 'min_neighbour_dist' reached: cannot add line at t = 0.43125 WARNING: 'min_neighbour_dist' reached: cannot add line at t = 0.6062500000000001 WARNING: 'min_neighbour_dist' reached: cannot add line at t = 0.89375 Surface Convergence
    GapCheck
    PASSED: 23 of 25
    FAILED: 2 of 25
    MoveCheck
    PASSED: 20 of 25
    FAILED: 5 of 25
    WARNING: Iterator stopped before the calculation could converge. WARNING: 'min_neighbour_dist' reached: cannot add line at t = 0.09375 WARNING: 'min_neighbour_dist' reached: cannot add line at t = 0.23125 WARNING: 'min_neighbour_dist' reached: cannot add line at t = 0.34375 WARNING: 'min_neighbour_dist' reached: cannot add line at t = 0.51875 WARNING: 'min_neighbour_dist' reached: cannot add line at t = 0.53125 Line Convergence
    PosCheck
    PASSED: 23 of 24
    FAILED: 1 of 24
    Surface Convergence
    GapCheck
    PASSED: 19 of 23
    FAILED: 4 of 23
    MoveCheck
    PASSED: 18 of 23
    FAILED: 5 of 23 Does this warning case by the low qulity results of nscf and wannier calculations? The print results is no problem: Z2 topological invariant at kx = 0: 0 Z2 topological invariant at kx = 0.5: 0 Will these warning affect the final results? Or I can ignore it? The plot result is a little strange.

  4. My final question is about the 1D system. There is another disscussion related to this. I saw there is one modify methods(for tight binding). So for fp method, it is like this:

    
    # Run the WCC calculations
    result_0 = z2pack.line.run(
    system=system,
    line=lambda t: [t, 0, 0],
    save_file='./results/res_0.json',
    load=True
    )
    # Combining the two plots
    fig, ax = plt.subplots(1, sharey=True, figsize=(9, 5))
    z2pack.plot.wcc(result_0, axis=ax[0])
    plt.savefig('plots/plot.pdf', bbox_inches='tight')

print( 'Z2 topological invariant at kx = 0: {0}'.format( z2pack.invariant.z2(result_0) ) )


Or the kx in 0 and 0.5 should be computed like the example? 
Thank you very much in advance.
greschd commented 3 years ago

Just to clarify, are your questions 1. & 3. regarding the Bi example, or for a different system?

ybfu commented 3 years ago

The questions 1&3 are regarding the Bi example. I checked the log file in the reference and found no such errors. So the only difference is the changed pseudopotential that causes the following errors. That is strange.

greschd commented 3 years ago
  1. I think setting nosym = .true. in the NSCF calculation should be ok. From the second error and the subsequent errors however, something does seem to be wrong with the calculation. Are there any obvious differences between the pseudo given in the example and the one you're using (different ZVAL, no spin-orbit correction, or something like that)? I also didn't quite understand why the pseudopotential from the example doesn't work, is there a specific reason for that?
  2. Z2Pack calculates the hybrid Wannier charge centers for different number of k-points along a line and do a convergence check on that. The relevant input variables controlling that are iterator and pos_tol, see https://z2pack.greschd.ch/en/latest/reference/line.html#z2pack.line.run
  3. In general, these warnings mean the resulting topological invariant is not reliable. There are two main causes for such errors:
    • The system has no or a very small (direct) band gap. If there is no direct band gap, the topological invariants are not well-defined. For small band gaps, the num_lines input parameters may need to be increased, min_neighbour_dist decreased, and the upper limit of iterator increased to reach convergence.
    • There is an error in the calculation, making the results wrong (and thus not converging). Common errors are excluding the wrong bands (such that the resulting system is gapless), or defining the surface in such a way that k-point lines are not periodic (shouldn't be the case for the Bi example).
  4. Yes, that seems correct for a 1D system that is oriented along the first lattice vector. Since a 1D calculation in QE is in principle still 3D (but should not depend on the other two axes) you can just do a line calculation along the extended direction. As a sanity check, changing the ky and kz values (e.g. lambda t: [t, 0.1, 0.2]) should not change the result.
ybfu commented 3 years ago
  1. Yes, I tested again the Bi exmple (only SCF calculation) under QE 5.0.3/5.1.2/5.3.0/6.2/6.3/6.3/6.4/6.5/6.6 version, all of the error is that: file ./Bi_MT_PBE.UPF not readable. So I can only quit the Bi_MT_PBE.UPF. Regarding your remind I checked the ZVAL/ spin-orbital parameter of the pseudopotentials. You are right, the related parameters are indeed different. The ZVAL of Bi_MT_PBE.UPF is 5 and the others are 15. Also, only two kinds of pseudopotential from PSLIBRARY show the spin-orbital information and 'has_so' ( fully relativistic PP with spin-orbit terms) equal to T. The pseudopotential I downloaded from the SSSP doesn't mention the spin-orbital information. I guess that is the reason why there are many warnings in the following step. Anyway, I will test the other pseudopotentials for the example.
  2. Thank you for the information about the kpoints. I will read z2pack.line part carefully.
  3. I think the warnings are caused by the inappropriate pseudopotential for scf/nscf calculation results, is it correct?
  4. Thank you very much again for explaining the 1D system. I will try some sample cases first.
greschd commented 3 years ago

Well, the pseudopotential in the example is definitely supposed to work with these QE versions, and tested with at least a few of them. I'm not sure what the exact reason for this issue is, but maybe it is in the wrong location, has the wrong file permissions, or some similar problem.

Note that since ZVAL is changed, you will have to adapt all related input variables, specifically nbnd for SCF and NSCF, and exclude_bands for Wannier90. The errors you are seeing are easily explained by considering which bands are included in the calculation: The example considers the lowest 10 bands. When ZVAL is changed from 5 to 15, those are just some core states, probably without an energy gap to the next higher band. As such, their topological invariant are ill-defined and the calculation cannot converge.

ybfu commented 3 years ago

Thank you very much for the important information. That is really helpful. For the Bi_MT_PBE.UPF pseudopotential I will test the example in the standalone QE.

Another small question: for an insulator system, to avoid the wrong setting of the nbnd one should carefully check the band structure of the nscf results and choose some considered bands located below and up the Fermi energy level? Or all the occupied bands and some valence bands should be considered? I think the former one is reasonable, correct?

greschd commented 3 years ago

For insulators, the occupied subspace is conventionally considered for calculating topological invariants [1]. As such, the nbnd should be all occupied bands, plus a few unoccupied ones s.t. convergence in the occupied bands is ensured.

[1] That's not the only possible choice, but by far the most common. See Sec. III and IV of the Z2Pack paper for more information and other examples.

ybfu commented 3 years ago

Thank you very much for answering so many questions. That's really helpful. I will read the related papers carefully.

poonamchauhan09 commented 2 years ago

sir i am also facing problem in execution z2 pack. I use 6.0 version of quantum espresso with 2.1.0 version of wannier90. SCF calculation execute without error but for to run the nscf, pw2wan and win input file . There is error during running nscf and pw2wan file . while .win file execute without any error. mmn file not found error occur in during running. please suggest, where i am wrong. Thanks in advance.

greschd commented 2 years ago

@poonamchauhan09, can you provide some more information about the error you are getting?

greschd commented 2 years ago

The wannier90.x command is run before NSCF with the -pp flag only -- this produces the .nnkp file which determines which overlap matrices should be computed. The "normal" Wannier90 run is not needed for Z2Pack, because we are only interested in the .mmn files which are an input to this, produced by pw2wannier90.x.

Yeah the error is occur in build folder during running nscf and pw2wan file.

What is the error message? Without it, it's impossible to tell what went wrong.

greschd commented 2 years ago

The number of input files is supposed to be 4: In the script, the { unit } and { lattice } in the tpl_Bi.win file are replaced with their actual values, which produces the Bi.win file. This is because QE is picky with regards to the lattice vectors, and they need to be the same as reported in the SCF output (which can differ numerically from the SCF input).

greschd commented 2 years ago

every parameter in input files is same as you provided in your code except pseudopotential file

In case the Z valence of the pseudopotential is different, have you adapted the corresponding parameters (e.g. exclude_bands in the .win)?

check the corresponding log/errors files.

Again, this error file inside the build folder is what should be checked to see the potential error. The error reported by Z2Pack directly isn't helpful, because all it can know is that there was some error during the calculation of .mmn. Can you post the corresponding log or error file where the problem occurs?

poonamchauhan09 commented 2 years ago

The no. of Z valance of the pseudopotential that i used is 15. I have no idea that how to choose exclude_bands parmeter value. pw.log

 Program PWSCF v.6.0 starts on 20May2022 at 11:22:52 

 This program is part of the open-source Quantum ESPRESSO suite
 for quantum simulation of materials; please cite
     "P. Giannozzi et al., J. Phys.:Condens. Matter 21 395502 (2009);
      URL http://www.quantum-espresso.org", 
 in publications or presentations arising from this work. More details at
 http://www.quantum-espresso.org/quote

 Parallel version (MPI), running on     1 processors
 Waiting for input...
 Reading input from standard input

Warning: card &IONS ignored Warning: card / ignored

 Current dimensions of program PWSCF are:
 Max number of different atomic species (ntypx) = 10
 Max number of k-points (npk) =  40000
 Max angular momentum in pseudopotentials (lmaxx) =  3

 Atomic positions and unit cell read from directory:
 ../scf/bi.save/

 Message from routine setup:
 At least one non s.o. pseudo

 Subspace diagonalization in iterative solution of the eigenvalue problem:
 a serial algorithm will be used

 G-vector sticks info
 --------------------
 sticks:   dense  smooth     PW     G-vecs:    dense   smooth      PW
 Sum        1081    1081    329                22809    22809    3877

 bravais-lattice index     =            5
 lattice parameter (alat)  =       8.9683  a.u.
 unit-cell volume          =     477.5478 (a.u.)^3
 number of atoms/cell      =            2
 number of atomic types    =            1
 number of electrons       =        30.00
 number of Kohn-Sham states=           16
 kinetic-energy cutoff     =      50.0000  Ry
 charge density cutoff     =     200.0000  Ry
 Exchange-correlation      = PBE ( 1  4  3  4 0 0)
 Non magnetic calculation with spin-orbit

 celldm(1)=   8.968262  celldm(2)=   0.000000  celldm(3)=   0.000000
 celldm(4)=   0.541218  celldm(5)=   0.000000  celldm(6)=   0.000000

 crystal axes: (cart. coord. in units of alat)
           a(1) = (   0.478948  -0.276521   0.833154 )  
           a(2) = (   0.000000   0.553041   0.833154 )  
           a(3) = (  -0.478948  -0.276521   0.833154 )  

 reciprocal axes: (cart. coord. in units 2 pi/alat)
           b(1) = (  1.043955 -0.602728  0.400086 )  
           b(2) = (  0.000000  1.205456  0.400086 )  
           b(3) = ( -1.043955 -0.602728  0.400086 )  

 PseudoPot. # 1 for Bi read from file:
 /home/hp/Poonamphd/Pseudo/pseudo_nc_gga/Bi.upf
 MD5 check sum: 200c63f77f1a5690b65e64056759e8a3
 Pseudo is Norm-conserving + core correction, Zval = 15.0
 Generated using ONCVPSP code by D. R. Hamann
 Using radial grid of 1490 points,  6 beta functions with: 
            l(1) =   0
            l(2) =   0
            l(3) =   1
            l(4) =   1
            l(5) =   2
            l(6) =   2

 atomic species   valence    mass     pseudopotential
    Bi            15.00   208.98038     Bi( 1.00)

 12 Sym. Ops., with inversion, found

                                s                        frac. trans.

  isym =  1     identity                                     

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

cart. s( 1) = ( 1.0000000 0.0000000 0.0000000 ) ( 0.0000000 1.0000000 0.0000000 ) ( 0.0000000 0.0000000 1.0000000 )

  isym =  2     180 deg rotation - cart. axis [1,0,0]        

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

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

  isym =  3     120 deg rotation - cryst. axis [0,0,1]       

cryst. s( 3) = ( 0 1 0 ) ( 0 0 1 ) ( 1 0 0 )

cart. s( 3) = ( -0.5000000 -0.8660254 -0.0000000 ) ( 0.8660254 -0.5000000 -0.0000000 ) ( 0.0000000 0.0000000 1.0000000 )

  isym =  4     120 deg rotation - cryst. axis [0,0,-1]      

cryst. s( 4) = ( 0 0 1 ) ( 1 0 0 ) ( 0 1 0 )

cart. s( 4) = ( -0.5000000 0.8660254 0.0000000 ) ( -0.8660254 -0.5000000 -0.0000000 ) ( 0.0000000 0.0000000 1.0000000 )

  isym =  5     180 deg rotation - cryst. axis [0,1,0]       

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

cart. s( 5) = ( -0.5000000 -0.8660254 -0.0000000 ) ( -0.8660254 0.5000000 0.0000000 ) ( 0.0000000 0.0000000 -1.0000000 )

  isym =  6     180 deg rotation - cryst. axis [1,1,0]       

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

cart. s( 6) = ( -0.5000000 0.8660254 0.0000000 ) ( 0.8660254 0.5000000 0.0000000 ) ( 0.0000000 0.0000000 -1.0000000 )

  isym =  7     inversion                                    

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

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

  isym =  8     inv. 180 deg rotation - cart. axis [1,0,0]   

cryst. s( 8) = ( 0 0 1 ) ( 0 1 0 ) ( 1 0 0 )

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

  isym =  9     inv. 120 deg rotation - cryst. axis [0,0,1]  

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

cart. s( 9) = ( 0.5000000 0.8660254 0.0000000 ) ( -0.8660254 0.5000000 0.0000000 ) ( 0.0000000 0.0000000 -1.0000000 )

  isym = 10     inv. 120 deg rotation - cryst. axis [0,0,-1] 

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

cart. s(10) = ( 0.5000000 -0.8660254 -0.0000000 ) ( 0.8660254 0.5000000 0.0000000 ) ( 0.0000000 0.0000000 -1.0000000 )

  isym = 11     inv. 180 deg rotation - cryst. axis [0,1,0]  

cryst. s(11) = ( 0 1 0 ) ( 1 0 0 ) ( 0 0 1 )

cart. s(11) = ( 0.5000000 0.8660254 0.0000000 ) ( 0.8660254 -0.5000000 -0.0000000 ) ( 0.0000000 0.0000000 1.0000000 )

  isym = 12     inv. 180 deg rotation - cryst. axis [1,1,0]  

cryst. s(12) = ( 1 0 0 ) ( 0 0 1 ) ( 0 1 0 )

cart. s(12) = ( 0.5000000 -0.8660254 -0.0000000 ) ( -0.8660254 -0.5000000 -0.0000000 ) ( 0.0000000 0.0000000 1.0000000 )

 double point group D_3d (-3m) 
 there are 12 classes and  6 irreducible representations
 the character table:

   E     -E    2C3   -2C3  3C2'  -3C2' i     -i    2S6   -2S6  3s_v  -3s_v

G_4+ 2.00 -2.00 1.00 -1.00 0.00 0.00 2.00 -2.00 1.00 -1.00 0.00 0.00 G_5+ 1.00 -1.00 -1.00 1.00 0.00 0.00 1.00 -1.00 -1.00 1.00 0.00 0.00 G_6+ 1.00 -1.00 -1.00 1.00 0.00 0.00 1.00 -1.00 -1.00 1.00 0.00 0.00 G_4- 2.00 -2.00 1.00 -1.00 0.00 0.00 -2.00 2.00 -1.00 1.00 0.00 0.00 G_5- 1.00 -1.00 -1.00 1.00 0.00 0.00 -1.00 1.00 1.00 -1.00 0.00 0.00 G_6- 1.00 -1.00 -1.00 1.00 0.00 0.00 -1.00 1.00 1.00 -1.00 0.00 0.00

 imaginary part

   E     -E    2C3   -2C3  3C2'  -3C2' i     -i    2S6   -2S6  3s_v  -3s_v

G_4+ 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 G_5+ 0.00 0.00 0.00 0.00 1.00 -1.00 0.00 0.00 0.00 0.00 1.00 -1.00 G_6+ 0.00 0.00 0.00 0.00 -1.00 1.00 0.00 0.00 0.00 0.00 -1.00 1.00 G_4- 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 G_5- 0.00 0.00 0.00 0.00 1.00 -1.00 0.00 0.00 0.00 0.00 -1.00 1.00 G_6- 0.00 0.00 0.00 0.00 -1.00 1.00 0.00 0.00 0.00 0.00 1.00 -1.00

 the symmetry operations in each class and the name of the first element:

 E             1
      identity                                               
 -E           -1
      identity E                                             
 2C3           3    4
      120 deg rotation - cryst. axis [0,0,1]                 
 -2C3         -3   -4
      120 deg rotation - cryst. axis [0,0,1] E               
 3C2'          2    5   -6
      180 deg rotation - cart. axis [1,0,0]                  
 3C2'          6   -5   -2
      180 deg rotation - cryst. axis [1,1,0]                 
 i             7
      inversion                                              
 -i           -7
      inversion E                                            
 2S6           9   10
      inv. 120 deg rotation - cryst. axis [0,0,1]            
 -2S6         -9  -10
      inv. 120 deg rotation - cryst. axis [0,0,1] E          
 3s_v          8   11  -12
      inv. 180 deg rotation - cart. axis [1,0,0]             
 3s_v         12  -11   -8
      inv. 180 deg rotation - cryst. axis [1,1,0]            

Cartesian axes

 site n.     atom                  positions (alat units)
     1           Bi  tau(   1) = (   0.0000000  -0.0000000   0.5845991  )
     2           Bi  tau(   2) = (   0.0000000   0.0000000  -0.5845991  )

Crystallographic axes

 site n.     atom                  positions (cryst. coord.)
     1           Bi  tau(   1) = (  0.2338900  0.2338900  0.2338900  )
     2           Bi  tau(   2) = ( -0.2338900 -0.2338900 -0.2338900  )

 number of k points=     7  gaussian smearing, width (Ry)=  0.0010
                   cart. coord. in units 2pi/alat
    k(    1) = (   0.0000000   0.0000000   0.0000000), wk =   0.1428571
    k(    2) = (  -0.1491365  -0.0861040   0.0571552), wk =   0.1428571
    k(    3) = (  -0.2982730  -0.1722080   0.1143103), wk =   0.1428571
    k(    4) = (  -0.4474095  -0.2583120   0.1714655), wk =   0.1428571
    k(    5) = (  -0.5965460  -0.3444160   0.2286206), wk =   0.1428571
    k(    6) = (  -0.7456825  -0.4305200   0.2857758), wk =   0.1428571
    k(    7) = (  -0.8948190  -0.5166240   0.3429310), wk =   0.1428571

                   cryst. coord.
    k(    1) = (   0.0000000   0.0000000   0.0000000), wk =   0.1428571
    k(    2) = (  -0.0000000   0.0000000   0.1428571), wk =   0.1428571
    k(    3) = (  -0.0000000   0.0000000   0.2857143), wk =   0.1428571
    k(    4) = (  -0.0000000   0.0000000   0.4285714), wk =   0.1428571
    k(    5) = (  -0.0000000   0.0000000   0.5714286), wk =   0.1428571
    k(    6) = (   0.0000000   0.0000000   0.7142857), wk =   0.1428571
    k(    7) = (  -0.0000000   0.0000000   0.8571429), wk =   0.1428571

 Dense  grid:    22809 G-vectors     FFT dimensions: (  45,  45,  45)

 Estimated max dynamical RAM per process >      28.93Mb

 The potential is recalculated from file :
 ../scf/bi.save/charge-density.dat

 Starting wfc are   36 randomized atomic wfcs

 Band Structure Calculation
 Davidson diagonalization with overlap

 Computing kpt #:     1

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Error in routine cdiaghg (122): S matrix not positive definite %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

 stopping ...

MPI_ABORT was invoked on rank 0 in communicator MPI_COMM_WORLD with errorcode 1.

NOTE: invoking MPI_ABORT causes Open MPI to kill all MPI processes. You may or may not see output from other processes, depending on exactly when Open MPI kills them.

and the pw2wan.lof file is

 Program PW2WANNIER v.6.0 starts on 20May2022 at 11:22:59 

 This program is part of the open-source Quantum ESPRESSO suite
 for quantum simulation of materials; please cite
     "P. Giannozzi et al., J. Phys.:Condens. Matter 21 395502 (2009);
      URL http://www.quantum-espresso.org", 
 in publications or presentations arising from this work. More details at
 http://www.quantum-espresso.org/quote

 Parallel version (MPI), running on     1 processors

Reading nscf_save data

 Reading data from directory:
 ../scf/bi.save

Info: using nr1, nr2, nr3 values from input

Info: using nr1, nr2, nr3 values from input

 IMPORTANT: XC functional enforced from input :
 Exchange-correlation      = PBE ( 1  4  3  4 0 0)
 Any further DFT definition will be discarded
 Please, verify this is what you really want

 G-vector sticks info
 --------------------
 sticks:   dense  smooth     PW     G-vecs:    dense   smooth      PW
 Sum        1081    1081    329                22809    22809    3859

Spin CASE ( non-collinear )

Wannier mode is: standalone


*** Reading nnkp

Checking info from wannier.nnkp file

NOTE: invoking MPI_ABORT causes Open MPI to kill all MPI processes. You may or may not see output from other processes, depending on exactly when Open MPI kills them.

greschd commented 2 years ago

The no. of Z valance of the pseudopotential that i used is 15. I have no idea that how to choose exclude_bands parmeter value.

The number of bands in SCF + NSCF needs to be more than the number of occupied bands per unit cell. Then, for the Wannier90 input, we need to exclude the unoccupied bands. So exclude_bands is <index of first unoccupied band> - <total number of bands>. Not sure if that causes the "S matrix not positive definite", but I'd say it's at least a possibility.

See also the description here: https://z2pack.greschd.ch/en/latest/tutorial/system.html?highlight=exclude_bands#preparing-input-files

poonamchauhan09 commented 2 years ago

Sir what is the meaning of the index of first unoccupied bands. Is the no. of bands is included In scf calculation also? Last one is the how to overcome wrong no. Of kpoints error in pw2wan. log file.

greschd commented 2 years ago

The index of the first unoccupied band is the number of electrons per unit cell, plus one.

Since the "S matrix" error occurs before the k-point error, I would try and fix that first. It's possible the error occurs simply because the previous step didn't produce the correct output.

poonamchauhan09 commented 2 years ago

sir, Bi example that you provide is run successfully. Can you please explain the physical significance of the graph obtained in the last means which quantity is at x and which is at y. what is kx=0 and kx=0.5. how from figure we can say it is topological insulator. means which parameter shows that it is topological insulator . Does we can plot more surface plots using z2 pack. Next i am doing another example using Z2 Pack. in the valance of those material there are 38 electrons and i take total no. of bands 50. than i take exclude_bands 40-50 is it okey

greschd commented 2 years ago

For the explanation of the hybrid Wannier charge center plot, please refer to the Z2Pack book chapter or the paper -- those are more coherent explanations than what I can produce in a Github issue.

As for the exclude_bands with 38 electrons and 50 bands, I guess it should be 39-50.

poonamchauhan09 commented 2 years ago

Thanks greschd for your generous reply. one more question can we use atomic positions in angstrom. if yes, than what parameters should i changes in script and tpl_case.win file. Can we use the same script (as for bi) for 2D materials.

greschd commented 2 years ago

The surface in z2pack.surface.run are in reduced coordinates, so there's no need to change when the positions change. The atoms_frac in the .win file is also in fractional coordinates, so that should just be relative to the UC.

poonamchauhan09 commented 2 years ago

what us UC

greschd commented 2 years ago

unit cell

poonamchauhan09 commented 2 years ago

Thanks for reply...............greschd can you tell how we can say a particular 2D material is satisfied the necessary condition to be topological insulator. Means how we can say a particular 2D material is topological insulator. I am completely new to this field. I search about topological insulator, the thing only about topological insulator is that it occur in case of a material having direct band gap and have possess soc effect. Can u help me to understand this concept. Is zero bandgap is necessary condition for 2D topological insulator. I am totally confused.

greschd commented 2 years ago

For the Z2 topological phase, this is the paper introducing the concept: https://www.physics.upenn.edu/~kane/pubs/p49.pdf

Is zero bandgap is necessary condition for 2D topological insulator.

Not at all, if the band gap is zero it's no longer an insulator. What you may have read here is that the band gap needs to close and re-open to go from trivial to non-trivial state.

poonamchauhan09 commented 2 years ago

ok, i will check this paper.

poonamchauhan09 commented 2 years ago

sir, i want to share some graphs can you provide your gmail id ...... and how to calculate parity eigenvalue means parity of band at high symmetric points.

greschd commented 2 years ago

sir, i want to share some graphs can you provide your gmail id

That can be found on the main page of the z2pack documentation.

how to calculate parity eigenvalue means parity of band at high symmetric points.

I don't remember the detailed flags / commands, but the DFT codes should be able to print symmetry eigenvalues as an output.

poonamchauhan09 commented 2 years ago

....

greschd commented 2 years ago

Using backgnd knowledge of these paper i found my z2=0 for both the kx=0 and kx=0.5. it means this material is not topological material am i right

That's correct.

greschd commented 2 years ago

No, that graph doesn't represent a topological insulator.

poonamchauhan09 commented 2 years ago

Can these wrong graphs may be due to the wrong input values. Although there is no error during running z2 pack.

greschd commented 2 years ago

Can these wrong graphs may be due to the wrong input values.

Well, if the inputs are incorrect there can be no expectation for the outputs to be correct...

poonamchauhan09 commented 2 years ago

okk can we use soc parameters in z2 pack. The material on which i working shows dirac cone when i include soc effect with it. I perform above graph without including soc effect in z2 pack. I read somewhere the initial condition to be a topological insulator is

greschd commented 2 years ago

I read somewhere the initial condition to be a topological insulator is

* atomic weight >=65

* bandgap<1.5 eV

Is this supposed to be a general statement, or specific to the material you're looking at? In general, I don't see why this should be true.

shows dirac cone when i include soc effect with it

If it has a Dirac cone, it's gapless, no? In that case, it would be a semimetal, not an insulator.

can we use soc parameters in z2 pack

yes

poonamchauhan09 commented 2 years ago

This is general statement. mostly topological insulator materials have heavy atomic mass with less value of band gap. you also do z2 pack examples by taking heavy atomic mass material i.e. Bi(atomicc mass =83). Yes, out of two material one have dirac cone so, for that particular materials i supposed to calculate weyl no. can you please mention which parameters should i include in input file to mention soc effect, meanwhile i rerun the calculation for the same material only by changing the relativistic pseudopotentials.....

greschd commented 2 years ago

less value of band gap

This makes sense to me, because the TI state has a split band crossing, so it can't[1] have a very large "natural" band gap.

mostly topological insulator materials have heavy atomic mass

That's right, but I have no idea if this is by accident or if there's some logic to this. Absent an argument as to why it must be that way, I would tend to ignore this.

In fact, since you're also interested in 2D materials, see this database entry (just a computational prediction, but still): https://www.materialscloud.org/discover/2dtopo/details/AsCuLi2

can you please mention which parameters should i include in input file to mention soc effect

I'm sorry, I don't have the capacity to teach about the parameters used in Quantum ESPRESSO and other codes. Since I'm no longer working actively working with these things, I would have to look that up myself. From the point of view of Z2Pack, there's nothing special about it. The aforementioned database contains an archive with the full history of the calculations, maybe you can find the correct parameters there.

[1] Still, I wouldn't put an exact number on this.

poonamchauhan09 commented 2 years ago

i already check this computational database, its only contains 25 materials. I still confused how to choose 2D topological insulator material.

greschd commented 2 years ago

only contains 25 materials

I have no reference to say if 25 is "only", or "a lot". In general, finding 25 materials of an exotic kind seems like a decent number.

confused how to choose 2D topological insulator material

I'm not sure what you mean by that statement. There's isn't some rule you can apply to predict 2D TIs directly from chemical composition, without computing it. Some people have a finely tuned chemical intuition to speed up the process; I'm not one of them.

Since I maintain Z2Pack in my spare time, I do not want to keep answering these general physics questions. Unless you have questions that are specific to the implementation and use of Z2Pack, I will stop responding to them now. It seems you may want to seek a mentor / advisor that you can ask these questions to; I am not that person.

A final piece of advice: When asking questions (whether in person or online), it pays off in my experience to spend some effort trying to answer the question yourself first. Crucially, this should also be apparent in the question: explain what you have tried, what did and didn't work, where exactly you got stuck, etc.

poonamchauhan09 commented 2 years ago

Thanks gresch you help me alot.

poonamchauhan09 commented 2 years ago

gresch does the z2 pack is applicable to all type of systems like 1D,2D & 3D [image: Mailtrack] https://mailtrack.io?utm_source=gmail&utm_medium=signature&utm_campaign=signaturevirality11& Sender notified by Mailtrack https://mailtrack.io?utm_source=gmail&utm_medium=signature&utm_campaign=signaturevirality11& 06/13/22, 12:39:23 AM

greschd commented 2 years ago

In principle yes, as long as you can either get the Hamiltonian directly, or have a first-principles code calculate the overlap matrices. For 1D, there's no built-in way (other than total polarisation) to compute topological invariants.