Distribution functions

Various distributions using different smearing techniques.

get_distribution(method[, smearing, x0])

Create a distribution function, Gaussian, Lorentzian etc.

gaussian(x[, sigma, x0])

Gaussian distribution function

lorentzian(x[, gamma, x0])

Lorentzian distribution function

fermi_dirac(E[, kT, mu])

Fermi-Dirac distribution function

bose_einstein(E[, kT, mu])

Bose-Einstein distribution function

cold(E[, kT, mu])

Cold smearing function, Marzari-Vanderbilt, PRL 82, 16, 1999

step_function(x[, x0])

Step function, also known as \(1 - H(x)\)

heaviside(x[, x0])

Heaviside step function

sisl.physics.distribution.gaussian(x, sigma=0.1, x0=0.0)[source]

Gaussian distribution function

\[G(x,\sigma,x_0) = \frac{1}{\sqrt{2\pi\sigma^2}}\exp\Big[\frac{- (x - x_0)^2}{2\sigma^2}\Big]\]
Parameters
xarray_like

points at which the Gaussian distribution is calculated

sigmafloat, optional

spread of the Gaussian

x0float, optional

maximum position of the Gaussian

Returns
numpy.ndarray

the Gaussian distribution, same length as x

sisl.physics.distribution.lorentzian(x, gamma=0.1, x0=0.0)[source]

Lorentzian distribution function

\[L(x,\gamma,x_0) = \frac{1}{\pi}\frac{\gamma}{(x-x_0)^2 + \gamma^2}\]
Parameters
xarray_like

points at which the Lorentzian distribution is calculated

gammafloat, optional

spread of the Lorentzian

x0float, optional

maximum position of the Lorentzian

Returns
numpy.ndarray

the Lorentzian distribution, same length as x

sisl.physics.distribution.fermi_dirac(E, kT=0.1, mu=0.0)[source]

Fermi-Dirac distribution function

\[n_F(E,k_BT,\mu) = \frac{1}{\exp\Big[\frac{E - \mu}{k_BT}\Big] + 1}\]
Parameters
Earray_like

energy evaluation points

kTfloat, optional

temperature broadening

mufloat, optional

chemical potential

Returns
numpy.ndarray

the Fermi-Dirac distribution, same length as E

sisl.physics.distribution.bose_einstein(E, kT=0.1, mu=0.0)[source]

Bose-Einstein distribution function

\[n_B(E,k_BT,\mu) = \frac{1}{\exp\Big[\frac{E - \mu}{k_BT}\Big] - 1}\]
Parameters
Earray_like

energy evaluation points

kTfloat, optional

temperature broadening

mufloat, optional

chemical potential

Returns
numpy.ndarray

the Bose-Einstein distribution, same length as E

sisl.physics.distribution.cold(E, kT=0.1, mu=0.0)[source]

Cold smearing function, Marzari-Vanderbilt, PRL 82, 16, 1999

\[\begin{split}C(E,k_BT,\mu) = \frac12 &+ \mathrm{erf}\Big(-\frac{E-\mu}{k_BT}-\frac1{\sqrt2}\Big) \\ &+ \frac1{\sqrt{2\pi}} \exp\Bigg\{-\Big[\frac{E-\mu}{k_BT}+\frac1{\sqrt2}\Big]^2\Bigg\}\end{split}\]
Parameters
Earray_like

energy evaluation points

kTfloat, optional

temperature broadening

mufloat, optional

chemical potential

Returns
numpy.ndarray

the Cold smearing distribution function, same length as E

sisl.physics.distribution.step_function(x, x0=0.0)[source]

Step function, also known as \(1 - H(x)\)

This function equals one minus the Heaviside step function

\begin{align} S(x,x_0) = \left\{\begin{aligned}1&\quad \text{for }x < x_0 \\ 0.5&\quad \text{for }x = x_0 \\ 0&\quad \text{for }x>x_0 \end{aligned}\right. \end{align}
Parameters
xarray_like

points at which the step distribution is calculated

x0float, optional

step position

Returns
numpy.ndarray

the step function distribution, same length as x

sisl.physics.distribution.heaviside(x, x0=0.0)[source]

Heaviside step function

\begin{align} H(x,x_0) = \left\{\begin{aligned}0&\quad \text{for }x < x_0 \\ 0.5&\quad \text{for }x = x_0 \\ 1&\quad \text{for }x>x_0 \end{aligned}\right. \end{align}
Parameters
xarray_like

points at which the Heaviside step distribution is calculated

x0float, optional

step position

Returns
numpy.ndarray

the Heaviside step function distribution, same length as x