|
| subroutine, public | smearing_utils::smearocc (f, n, kts, e, mu, sigma, maxocc, method, estate, festate) |
| | Returns occupations and smearing correction for a given set of energies and chemical potential, using one of four smearing methods.
|
| |
| subroutine, public | smearing_utils::smearfixed (f, mu, kts, e, n, sigma, maxocc, method, estate, festate) |
| | Bisection search for the chemical potential mu such that the total electron count equals N, for a given smearing method (Gamma point). Brackets mu by expanding outward from [min(e), max(e)] in steps of sigma, then bisects to machine precision. Could fail if mu lies far outside the eigenvalue range (to be fixed).
|
| |
| subroutine, public | smearing_utils::smearkp (f, mu, kts, e, nel, wk, sigma, maxocc, method) |
| | Bisection search for mu given a target electron count (k-point case, single spin channel or spin-degenerate). Initial bracket width is max(10*sigma, 0.5) for Gaussian/MP/MV, or sigma*ln[(1-eps)/eps] for Fermi-Dirac, reflecting the different tail decay rates.
|
| |
| subroutine, public | smearing_utils::smearkp2 (f, mu, kts, e, nel, wk, sigma, method) |
| | Bisection search for mu (k-point, spin-polarised with a shared chemical potential across both spin channels). Asserts that the third dimension of f and e is exactly 2.
|
| |
| subroutine, public | smearing_utils::smearfixedderiv (dfde, f, mu, kts, e, n, sigma, maxocc, method, estate, festate) |
| | Analytical Jacobian df_i/de_j for any smearing method under the electron-number constraint sum(f) = N.
|
| |
| subroutine, public | smearing_utils::smearfixedderivmv (result, f, mu, kts, e, n_el, sigma, maxocc, method, v, estate, festate) |
| | Apply TRANSPOSE(df/de) to a vector WITHOUT forming the full N x N Jacobian. O(N) time and O(N) memory for all four methods.
|
| |