I am new to Wannier90 calculations. I am trying to obtain the Wannier functions and Wannier interpolated band structure.

But I am having a problem in setting the parameters like dist_win_min, dist_win_max, dist_froz_min, dist_froz_max and orbital projections. What are the steps which I should follow for guessing the values of these parameters?

I have gone through the examples of Wannier90 but that didn't clarify how to guess the initial values of these parameters if we want to perform calculations in new systems.

  • $\begingroup$ How did this go UJM? Have you found an answer? $\endgroup$ Sep 2, 2022 at 20:36
  • $\begingroup$ Not yet. I am still trying to get through it. I will provide the answer once I find the way. $\endgroup$
    – UJM
    Sep 3, 2022 at 5:07
  • $\begingroup$ Okay, I've bumped it up to the top of the main page with an edit that majorly corrects grammar and formatting. $\endgroup$ Sep 3, 2022 at 23:37
  • $\begingroup$ Is there anyone you'd like me to contact to try to help get this answered? $\endgroup$ Nov 1, 2022 at 20:03
  • $\begingroup$ @Nike Dattani, I am really sorry for my late response. I haven't still found any solid process to know these parameters. I am not sure but if you can ask ProfM, it will be very helpful. $\endgroup$
    – UJM
    Nov 7, 2022 at 7:08

1 Answer 1


Notes on my answer: I'll mainly link to arXiv versions of papers, but will also link the peer-reviewed version if the arXiv page doesn't do that itself. DFA means "density functional approximation", and MLWFs are maximally localized Wannier functions.

Helpful resources for wannier90 include its user guide and the 2008 Comput. Phys. Comm. article that introduced it to the world.

1) Energy windows

The inner (or frozen) and outer energy windows are parameters required by the disentanglement procedure of Souza, Marzari, and Vanderbilt, PRB (2001). Whenever the collection of bands you're interested in is entangled—that is, when there is no energy gap separating it from both higher- and lower-energy bands at every point in the Brillouin zone—you need to use this disentanglement to cause it to be composite.

This step actually changes the band structure a little, at the top and bottom of the outer energy window, where bands are being deflected away from the cutoffs. These cutoffs are known as dis_win_min and dis_win_max. By default, they are the lowest- (highest-)energy eigenvalues in your calculation, allowing all the bands to be included in the disentanglement procedure. In my work I've never had to specify otherwise.

The inner window, specified by dis_froz_min and dis_froz_max, is a smaller energy range on which disentanglement isn't allowed to change the band structure. What this is allowed to be depends on the question you're asking, as well as the actual range of the band structure you're looking at. I usually like to make sure the occupied states don't change under disentanglement, so I set dis_froz_max a little higher than the Fermi energy. I've never had to adjust dis_froz_min, because the disentanglement usually happens at higher energies, but if you want to ignore shallow core states you might set it some distance or other below the Fermi energy.

2) Orbital projections

This is basically the initial guess for wannier90. If use_bloch_phases = .TRUE., it just uses the canonical Kohn–Sham orbitals; they're not very close to the maximally localized Wannier functions, except maybe for small isolated systems, but the localization procedure is robust enough that it might work anyway.

If you have some idea about the chemical bonding happening in your system, you could use the projections block; for instance onto sp3 orbitals centered between atoms or something. See section 3.1 of the User Guide for this.

Personally, I prefer to use set auto_projections = .TRUE. instead, and then use a method called SCDM, for Selected Columns of the Density Matrix (initial theory and its peer-reviewed version, extension to bulk systems (peer reviewed here), and with disentanglement built in (peer reviewed)). SCDM automatically selects what are usually reasonably localized initial guesses, based on the nearsightedness principle: Because the one-body density matrix follows an exponential decay $$ \rho(\mathbf{r}, \mathbf{r}') \sim e^{-\lvert \mathbf{r} - \mathbf{r}' \rvert}, $$ you can perform a QR decomposition with column pivoting and get a few columns of $\rho(\mathbf{r},\mathbf{r'})$ that are fairly localized orbitals. In my experience, SCDM orbitals work really nicely as initial guesses for MLWFs. This 2020 paper by Vitale and coworkers demonstrates the usefulness of SCDM as an automatable initial-guess generator.

The actual SCDM calculation is done in pw2wannier90; see section 3.5 of the user guide linked above.


You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .