47 const Real inverse_sqrt2 = 1.0 / std::sqrt(2.0);
48 Real y = x + inverse_sqrt2;
49 return 0.5 * std::erfc(y) + std::exp(-y * y) / std::sqrt(2.0 *
constants::pi);
53 const Real inverse_sqrt2 = 1.0 / std::sqrt(2.0);
54 Real y = x + inverse_sqrt2;
55 return -y * std::exp(-y * y) / std::sqrt(2.0 *
constants::pi);
58 [[nodiscard]] std::string
name()
const override {
59 return "marzari-vanderbilt";
Marzari-Vanderbilt ("cold") smearing.
std::string name() const override
MarzariVanderbiltSmearing(Real smearing_width=0.0)
Real entropy_weight(Real x) const override
Compute the entropy contribution δ(x) weight.
Real occupation(Real x) const override
Compute the occupation f(x) where x = (E - E_F) / σ.
Abstract interface for electronic smearing schemes.
Real smearing_width() const
Smearing width σ (degauss) in Ry.