Outline: Obtain and plot MLWF for the four valence bands of GaAs. In this first example we have created the input files from pswscf, so you just need to run wannier90
Generation details: From pwscf, using norm-conserving pseudopotentials and a 2x2x2 k-point grid. Starting guess: four bond-centred Guassians.
Directory: ex1

Input Files

1. Run wannier90 to minimise the MLWF spread

wannier90.x gaas 

Inspect the output file gaas.wout. The total spread converges to its minimum value after just a few iterations. Note that the geometric centre of each MLWF lies along a Ga-As bond, slightly closer to As than Ga. Note also that the memory requirement for the minimisation of the spread is very low as the MLWF are defined at each k-point by just the 4x4 unitary matrices U(k)

2. Plot the MLWF by adding the following keywords to the input file

wannier plot = true

and re-running wannier90. To visualise the MLWF we must represent them explicitly on a real space grid (see Ref. [1]). As a consequence, plotting the MLWF is slower and uses more memory than the minimisation of the spread. The four files that are created (gaas_00002.xsf, etc.) can be viewed using XCrySDen,1 e.g.,

xcrysden --xsf gaas_00002.xsf 

For large systems, plotting the MLWF may be time consuming and require a lot of memory. Use the keyword wannier plot list to plot a subset of the MLWF. E.g., to plot the 1st, 2nd and 7th MLWF use

wannier plot list = 1 2 7 

The MLWF are plotted in a supercell of the unit cell. The size of this supercell is set through the keyword wannier_plot_supercell. The default value is 2 (corresponding to a supercell with eight times the unit cell volume). We recommend not using values great than 3 as the memory and computational cost scales cubically with supercell size.


Outline: Obtain and plot MLWF for the valence bands of silicon
Input Files

We need to run a series of calculations to obtain the MLWF. The directory contains a suitable submission script, note that it does the following

  1. Run an scf calculation to obtain the ground-state charge density
  2. Run an nscf calculation to obtain the bloch states on a uniform grid of kpoints
  3. Run Wannier90 in pre-processing mode to determine which overlaps are needed
  4. Run pw2wannier90 to compute the overlaps (M) and projections (A)
  5. Run wannier90 to obtain the wannier functions

Now re-run wannier90 and plot the Wannier functions