PAOFLOW.spectrum.do_adaptive_smearing#
Functions#
|
Compute adaptive smearing widths for each k-point and band. |
Module Contents#
- PAOFLOW.spectrum.do_adaptive_smearing.do_adaptive_smearing(data_controller, smearing, afac)[source]#
Compute adaptive smearing widths for each k-point and band.
- Parameters:
data_controller (DataController) – Object providing
data_arraysanddata_attributes. Required array:pksp(shape(npks, 3, nawf, nawf, nspin)) — the momentum matrix elements in the Bloch eigenstate basis. Required attributes:nawf,nspin,nkpnts,omega.smearing (str) – Smearing method identifier. Pass
'm-p'for Methfessel–Paxton; any other value selects the default prefactor.afac (Optional[float]) – Adaptive smearing prefactor \(\alpha\). If
None, defaults to1.0for'm-p'smearing and0.7otherwise.
- Returns:
Adds the following keys to
data_controller.data_arrays:deltakp: np.ndarray, shape(npks, nawf, nspin)— band-resolved adaptive smearing widths \(\sigma_{nk} = \alpha \, |\nabla_k E_n| \, \delta k\).deltakp2: np.ndarray, shape(npks, nawf, nawf, nspin)— interband adaptive smearing widths proportional to \(|\nabla_k E_n - \nabla_k E_m|\).
- Return type:
None
Notes
The mean k-point spacing is estimated as
\[\delta k = \left(\frac{8\pi^3}{\Omega \, N_k}\right)^{1/3}\]where \(\Omega\) is the unit-cell volume and \(N_k\) is the total number of k-points. The diagonal elements of
pksp(proportional to the band velocities) are used as a proxy for \(\nabla_k E_n\).Reference: J. R. Yates, X. Wang, D. Vanderbilt, I. Souza, Phys. Rev. B 75, 195121 (2007).