Closed Matephysics closed 5 years ago
The main idea behind num_iter=0
is to get a well localized and "atomic-like" Wannier orbital set. This does not necessarily mean that num_iter
should always set to zero, you can still use the iterative minimization scheme but it may result in some drifting in Wannier charge centers and orbital deformation.
TL; DR Simply do a fat band analysis and check what orbitals are responsible for the desired state, then, include them in both valence and conduction band. This should always yield a good result (you might want to make sure there are enough bloch bands in your DFT calculation).
Example:
In this example: I deem all states in the valence band to be desired (green part), and they correspond to, let's say, p-orbitals. p-orbitals are also occupying conduction band alongside some other orbitals contributions which are deemed "undesired" (orange part).
To safely include all p-orbitals we have to set dis_win_max
and dis_win_min
to include them both in valence band and in conduction band. I have set the dis_win_max
slightly above the maximum energy of p-orbitals in the conduction band to be safe, because there could be some higher energy p-orbital states at some k points which was not in our Brillouin zone sample, it's better safe than sorry.
To constrain the disentangle procedure so that it does not affect the desired state (especially states near the fermisurface if you are studying a TI or sorts), we have to set dis_froz_max
and dis_froz_min
to only include states purely made from p-orbitals.
Then, setting num_iter
to 0 and run Wannier90.
This should always yield a fairly good localized Wannier orbital set (low spread, good band structure fit, etc.) since p-orbtials itself are orthogonal to each other and should be complete enough to describe this subspace.
I also recommend you going though the examples in the Wannier90 tutorial before your production run with these codes.
Best wishes.
@Chengcheng-Xiao Thanks for your reply. @Matephysics If you set very large num_iter like num_iter=1000, then the atomic-orbital-like orbitals will be mixed with each other. We assume that our Wannier functions are pure spin up and spin down.
Hi all, To calculate the Chern number via wanniertools, we give 'wannier90_hr.dat' file as an input which we get from wannier90 package. My question is that num_iter=0 is must for wanniertools to get a Chernumber? or num_iter≠0 also works and give a good result. My DFT and wannier90 band structure are well matched but for this, i have used num_iter=3000 which means they are maximally localized wannier functions. I need your guideline in this direction.