Wannier function centers and spreads

Functions for computing Wannier centers and components of the spread

w90utils.sprd.omega(Mmn, bvectors, bweights)[source]

Compute the spread functional

Parameters
  • Mmn (ndarray, shape (nkpts, nntot, nbnds, nbnds)) – the overlap matrix

  • bvectors (ndarray, shape (nkpts, nntot, 3)) –

  • bweights (ndarray, shape (nntot,)) –

w90utils.sprd.omega_d(m, bvectors, bweights, idx=None)[source]

Compute the diagonal contribution to the spread functional

Parameters
  • m (ndarray, shape (nkpts, nntot, nbnds, nbnds)) – the overlap matrix

  • bvectors (ndarray, shape (nkpts, nntot, 3)) –

  • bweights (ndarray, shape (nntot,)) –

w90utils.sprd.omega_dod(Mmn, bvectors, bweights)[source]

Compute the sum of the diagonal and off-diagonal contribution to the spread functional

Parameters
  • Mmn (ndarray, shape (nkpts, nntot, nbnds, nbnds)) – the overlap matrix

  • bvectors (ndarray, shape (nkpts, nntot, 3)) –

  • bweights (ndarray, shape (nntot,)) –

w90utils.sprd.omega_i(Mmn, bweights)[source]

Compute the invariant contribution to the spread functional

Parameters
  • Mmn (ndarray, shape (nkpts, nntot, nbnds, nbnds)) – the overlap matrix

  • bweights (ndarray, shape (nntot,)) –

w90utils.sprd.omega_iod(m, bweights, idx=None)[source]

Compute the sum of the invariant and off-diagonal contribution to the spread functional

Parameters
  • m (ndarray, shape (nkpts, nntot, nbnds, nbnds)) – the overlap matrix

  • bweights (ndarray, shape (nntot,)) –

w90utils.sprd.omega_od(Mmn, bweights)[source]

Compute the off-diagonal contribution to the spread functional

Parameters
  • Mmn (ndarray, shape (nkpts, nntot, nbnds, nbnds)) – the overlap matrix

  • bweights (ndarray, shape (nntot,)) –

w90utils.sprd.wannier_centers(m, bvectors, bweights)[source]