Calculation and Parser classes

class aiida_wannier90.parsers.Wannier90Parser(calculation)

Wannier90 output parser. Will parse global gauge invarient spread as well as the centers, spreads and, if possible the Imaginary/Real ratio of the wannier functions. Will also check to see if the output converged.

Helper modules

Writing input files

This submodule contains helper functions to create input files., parameters, kpoints=None, structure=None, kpoint_path=None, projections=None, random_projections=False)

Write input to a .win file.

  • filename (str) – Path of the file where the input is written.
  • parameters (dict, – Additional input parameters, as specified in the Wannier90 user guide.
  • structure ( – Structure of the calculated material.
  • kpoints ( – Mesh of k-points used for the Wannierization procedure.
  • kpoint_path ( – List of k-points used for band interpolation.
  • projections (,[str]) – Orbitals used for the projections. Can be specified either as AiiDA OrbitalData, or as a list of strings specifying the projections in Wannier90’s format.
  • random_projections ( – If OrbitalData is used for projections, enables random projections completion

Creating OrbitalData instances

aiida_wannier90.orbitals.generate_projections(list_of_projection_dicts, structure)

Use this method to emulate the input style of wannier90, when setting the orbitals (see chapter 3 in the wannier90 user guide). Position can be provided either in cartesian coordiantes using position_cart or can be assigned based on an input structure and kind_name. Pass a list of dictionaries, in which the keys of each dictionary correspond to those below. Also that radial, and ang_mtm_mr both use 0 indexing as opposed to 1 indexing, effectively meaning that both should be offset by 1. E.g. an orbital with 1 radial node would use radial=2 (wannier90 syntax), and then be converted to radial_nodes=1 (AiiDa plugin syntax) inside the stored orbital.


The key entries used here, may not correspond to the keys used internally by the orbital objects, for example, ang_mtm_mr will be converted to magnetic_number in the orbital object the value stored in orbital is listed in (braces).


To keep in line with python-indexing as much as possible, the values of radial, and ang_mtm_mr our out of sync with their radial_nodes, angular_momentum counterparts. Specifically, radial and ang_mtm_mr both start at 1 while radial_nodes and angular_momentum both start at 0, thus making the two off by a factor of 1.

  • position_cart – position in cartesian coordinates or list of positions in cartesian coordinates (position)
  • kind_name – kind_name, for use with the structure (kind_name)
  • radial – number of radial nodes (radial_nodes + 1)
  • ang_mtm_name – orbital name or list of orbital names, cannot be used in conjunction with ang_mtm_l or ang_mtm_mr (See ang_mtm_l and ang_mtm_mr)
  • ang_mtm_l – angular momentum, if ang_mtm_mr is not specified will return all orbitals associated with it (angular_momentum)
  • ang_mtm_mr – magnetic angular momentum number must be specified along with ang_mtm_l (magnetic_number + 1)
  • spin – the spin, spin up can be specified with 1,u or U and spin down can be specified using -1,d,D (spin)
  • zona – as specified in user guide, applied to all orbitals (diffusivity)
  • zaxis – the zaxis, list of three floats as described in wannier user guide (z_orientation)
  • xaxis – the xaxis, list of three floats as described in the wannier user guide (x_orientation)
  • spin_axis – the spin alignment axis, as described in the user guide (spin_orientation)