Skip to content
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

Using z2pack for 2D 1T'-MoS2 #218

Open
shahid-sattar opened this issue May 2, 2024 · 6 comments
Open

Using z2pack for 2D 1T'-MoS2 #218

shahid-sattar opened this issue May 2, 2024 · 6 comments

Comments

@shahid-sattar
Copy link

I am trying to reproduce results for 2D 1T'-MoS2 using Z2pack, an example is given here using wanniertools package, so there is a reference available

The system is periodic in xy-direction and vacuum in z-direction (a 0 0, 0 b 0, 0 0 c=30.0). Since I did wannierzation already using wannier90, I know which orbitals to consider. Nevertheless, since I don't know how can I add this in my input/wannier90.win file in z2pack, I take the following as wannier90.win file:

num_wann = 44
num_bands = 44
spinors : true
num_iter 0
shell_list 1
exclude_bands : 1-24
skip_b1_tests = true

I use following settings in run.py file,
Screenshot 2024-05-02 at 07 00 41
However, I don't get a non-zero Z2 number as the output from Z2pack, as it is given here
Screenshot 2024-05-02 at 07 02 05

May I ask what is wrong that I am doing here?

@greschd
Copy link
Member

greschd commented May 2, 2024

The following parameter seems a bit suspicious to me

exclude_bands : 1-24

as this means only bands 25-44 are considered in the calculation. Usually, this setting is used in the Z2Pack context to exclude unoccupied bands.

Looking at the WannierTools example

NumOccupied = 36 ! Number of occupied Wannier bands

I'd guess (if the system is set up with the same pseudopotentials) the input should be

exclude_bands : 37-44

@shahid-sattar
Copy link
Author

Hi, thanks for the response. I have checked very carefully that the number of bands are correct. Because I have total 68 bands in DFT run, 1-24 form an energy window which is much below my range of interest, and therefore, I took 44 wannier projections (2 Mo atoms< 20, 4 S atoms < 24, total 44) and 44 upper bands after excluding 1-24 bands much below in energy.
Despite these band numbers are different from the example, my wannier spread is atomic-like and I reproduced all listed topological features for 1T'-MoS2.
Screenshot from 2024-05-02 09-24-33
Screenshot from 2024-05-02 09-29-00
Screenshot from 2024-05-02 09-30-44
Screenshot from 2024-05-02 09-32-13

Again, I am not so clear where is the issue. Perhaps I can put this case as an example of a 2D system, if resolved, because 1T'-MoS2 is a well-defined system.

@greschd
Copy link
Member

greschd commented May 2, 2024

Unlike a general Wannier90 calculation, for Z2Pack you will additionally need to exclude the unoccupied bands. This is because Z2Pack calculates the hybrid WCC for all bands considered in the Wannier90 input [1]. If all bands (occupied and unoccupied) are considered, the result will always be trivial since their topologies cancel out.

[1] It is not running a real Wannier90 calculation, just its pre-processor for the purpose of generating the MMN matrices.

@shahid-sattar
Copy link
Author

shahid-sattar commented May 2, 2024

Alright. So, then I have 68 bands in total, 52 are occupied bands, and 16 are unoccupied. I should take 1-52 bands, and exclude 53-68, right? and in this situtation, should I adjust num_wann=44 and num_bands=52?

@shahid-sattar
Copy link
Author

Here is the outcome when I consider only occupied region, take all bands in my case (num_bands=52) and take projections (num_wann=44), I got the right result. Z2=1 for both kz=0 and kz=0.5 planes.
Screenshot from 2024-05-02 11-10-57
One last thing to clarify, can I specify in the input file that I want to take projections on Mo d and S p orbitals? If so, can it expedite the outcome?

@greschd
Copy link
Member

greschd commented May 7, 2024

can I specify in the input file that I want to take projections on Mo d and S p orbitals

If memory serves me well, the initial projections don't affect the MMN matrix (which is the only input to Z2Pack) at all. You may want to double-check that, though.
It's definitely not required to pick a good initial projection for the Z2Pack calculation directly from DFT to work.

What you might want to consider from this output is that the GapCheck and MoveCheck convergence criteria have failed. These are implemented to guard against fast changes in the hybrid Wannier charge center evolution. In the absence of these checks, the computed invariants are unreliable.
To fix this, you should reduce the min_neighbour_dist parameter.

The cause for this is probably that the system has a quite narrow direct band gap. From experience, this correlates with sharp peaks in the Berry flux / fast-changing hybrid Wannier charge centers. Generally, I'd also advise increasing the initial num_lines parameter (e.g. to 100), since the convergence checks can only work if the initial lines are close to the direct band gap minimum.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants