calculateEffectiveMassTensor(configuration, kpoint=None, spin=None, band_indices=None)

Calculates the effective mass tensor \(\frac{d^2 E}{dk_i dk_j}\) at the given kpoint, spin, and bands.

  • configuration (BulkConfiguration) – The configuration for which to calculate the effective mass tensor.
  • kpoint (tuple of floats) – The kpoint as three floats representing fractional reciprocal space coordinates.
    Default: The Gamma point (0.0, 0.0, 0.0)
  • spin (Spin.Up | Spin.Down | Spin.All) – The spin component for which to perform the calculation.
    Default: Spin.All
  • band_indices (list of non-negative int) – Indices of the bands for which to calculate the effective mass tensor.
    Default: None

List of effective mass tensors in units of the electron mass \(m_e\) for each requested band.

Return type:

list of PhysicalQuantity

Usage Examples

Evaluate the effective mass tensor for a bulk configuration:

effective_mass_tensor = calculateEffectiveMassTensor(
    kpoint=[0.5, 0.5, 0.0],
effective_mass_xy = effective_mass_tensor[0,1]


The effective mass tensor is calculated through the second order derivative of the energy band \(\epsilon_{n\mathbf{k}}\) with respect to the \(\mathbf{k}\) vector,

\[M_{\alpha\beta} = \frac{\partial^2 \epsilon_{n\mathbf{k}} }{ \partial k_\alpha \partial k_\beta},\]

which is a 3x3 tensor. The effective mass tensor \(\alpha,\beta\) is then given by the inverse of \(\mathbf{M}\),

\[m^*_{\alpha\beta} = \hbar^2M^{-1}_{\alpha\beta}.\]

The second order derivative of the energy band is obtained through an expansion of the Kohn-Sham equation in terms of a momentum displacement \(\delta \mathbf{k}\). To second order of this expansion, one obtains

\[\frac{\partial^2\epsilon_{n\mathbf{k}} }{\partial k_\alpha \partial k_\beta} = \langle \psi_{n\mathbf{k}} \left| \frac{\partial^2 H_\mathbf{k}}{\partial k_\alpha \partial k_\beta} - \epsilon_{n\mathbf{k}} \frac{\partial^2 S_\mathbf{k}}{\partial k_\alpha k_\beta} - \frac{\partial \epsilon_{n\mathbf{k}}}{\partial k_\alpha} \frac{\partial S_\mathbf{k}}{\partial k_\beta} - \frac{\partial \epsilon_{n\mathbf{k}}}{\partial k_\beta} \frac{\partial S_\mathbf{k}}{\partial k_\alpha} \right|\psi_{n\mathbf{k}} \rangle + 2 \sum_{m\neq n} \frac{\langle \psi_{n\mathbf{k}} \left| \frac{\partial H_\mathbf{k}}{\partial k_\alpha} - \epsilon_{n\mathbf{k}} \frac{\partial S_\mathbf{k}}{\partial k_\alpha} \right| \psi_{m\mathbf{k}} \rangle \langle \psi_{m\mathbf{k}} \left| \frac{\partial H_\mathbf{k}}{\partial k_\beta} - \epsilon_{n\mathbf{k}} \frac{\partial S_\mathbf{k}}{\partial k_\beta} \right| \psi_{n\mathbf{k}} \rangle} {\epsilon_{n\mathbf{k}} - \epsilon_{m\mathbf{k}}}\]

where \(H_\mathbf{k}\) and \(S_\mathbf{k}\) are the Fourier components of the Hamiltonian and overlap matrices, respectively.

Special care has is taken to deal with degenerate bands. The degenerate states are first rotated such that the perturbation becomes diagonal in these states. The sum in above equation then extends only over those states \(|m\rangle\) that do not belong to the set of degenerate states.