infinite module

Evaluate properties of electron gas in thermodynamic limit using grand canonical ensemble

infinite.chem_pot(rs, beta, ef, zeta, method=<function nav>, it=1)

Find the chemical potential for infinite system.

Parameters:
  • rs (float) – Wigner-Seitz radius.
  • beta (float) – Inverse temperature.
  • ef (float) – Fermi energy.
  • zeta (int) – Spin polarisation.
Returns:

mu – Chemical potential.

Return type:

float

infinite.energy_integral(beta, mu, rs, zeta)

Total energy at inverse temperature beta:

\[U = (2-\zeta) \frac{2\sqrt{2}}{3\pi}r_s^3\beta^{-5/2} I(3/2, \eta)\]
Parameters:
  • eta (float) – beta * mu, for beta = 1 / T and mu the chemical potential.
  • nu (float) – Order of integral.
Returns:

I(eta, nu) – Fermi integral.

Return type:

float

infinite.fermi_integral(nu, eta)

Standard Fermi integral \(I(\eta, \nu)\), where:

\[I(\eta, \nu) = \int_0^{\infty} \frac{x^{\nu}}{(e^{x-\eta}+1)} dx\]
Parameters:
  • eta (float) – \(\beta\mu\).
  • nu (float) – Order of integral.
Returns:

:math:`I(eta, nu)` – Fermi integral.

Return type:

float

infinite.fermi_integrand(x, nu, eta)

Integrand of standard Fermi integral I(eta, nu), where:

\[I(\eta, \nu) = \int_0^{\infty} \frac{x^{\nu}}{(e^{x-\eta}+1)} dx\]
Parameters:
  • x (float) – integration variable.
  • nu (float) – Order of integral.
  • eta (float) – \(\beta\mu\).
infinite.fermi_integrand_deriv(x, nu, eta)
Derivative of integrand of standard Fermi integral \(I(eta, nu)\)

wrt beta.

TODO : check this.

Parameters:
  • x (float) – integration variable.
  • nu (float) – Order of integral.
  • eta (float) – \(\beta\mu\).
infinite.gc_free_energy_integral(beta, mu, rs)

Free energy:

\[U = (2-\zeta) \frac{8\sqrt{2}}{9\pi}r_s^3\beta^{-5/2} I(5/2, \eta)\]\[[todo] : check expression here.\]
Parameters:
  • beta (float) – Inverse temperature.
  • mu (float) – Chemical potential.
  • rs (float) – Wigner-Seitz radius.
Returns:

Omega – Ideal grand potential.

Return type:

float

infinite.hfx_integral(rs, beta, mu, zeta)

First-order exchange contribution to internal energy:

\[\Omega =\]
Parameters:
  • rs (float) – Wigner-Seitz radius.
  • beta (float) – Inverse temperature.
  • mu (float) – Chemical potential.
Returns:

hfx – Grand potential (Helmholtz Free energy.)

Return type:

float

infinite.hfx_integrand(eta, power=2.0)

Integrand of first order exchange contribution to internal energy.

\[U_x = \int_0^{\infty}\]

rac{x^{ u}}{(e^{x-nu}+1)} dx

Todo : maths + reference.
Parameters:eta (float) – beta * mu, for beta = 1 / T and mu the chemical potential.
Returns:I(-1/2, nu)^2 – Fermi integral.
Return type:float
infinite.inversion_correction(rs, beta, mu, zeta)
Correction to Helmholtz free energy when moving from grand canonical to

canonical ensemble.

Turns out to be:

\[\frac{1}{2\sqrt{2}\pi^4}\beta^{-3/2}I_{-1/2}(\eta_0)^{3}\]

[todo] : just make this the chemical potential.

Parameters:
  • rs (float) – Wigner-Seitz radius.
  • beta (float) – Inverse temperature.
  • mu (float) – Chemical potential.
  • zeta (int) – Spin polarisation
Returns:

corr – Correction term for inversion process.

Return type:

float

infinite.nav(beta, mu, zeta)

Average density i.e. \(N/V\).

Parameters:
  • beta (float) – Inverse temperature.
  • mu (float) – Chemical potential.
  • zeta (int) – Spin polarisation.
Returns:

rho – Average density.

Return type:

float

infinite.nav_diff(mu, beta, rs, zeta, method=<function nav>, it=1)

Deviation of average density for given \(\mu\) from true value.

Parameters:
  • mu (float) – Chemical potential.
  • beta (float) – Inverse temperature.
  • rho (float) – True density.
  • zeta (int) – Spin polarisation.
Returns:

dev\(n(\mu) - n\).

Return type:

float

infinite.rpa_correlation_free_energy_mats(rs, theta, zeta, lmax)
RPA correlation free energy as given in Tanaka and Ichimaru, Phys. Soc.
Jap, 55, 2278 (1986).
Parameters:
  • rs (float) – Wigner-Seitz radius.
  • theta (float) – Degeneracy temperature.
  • zeta (int) – Spin polarisation.
  • lmax (int) – Maximum Matsubara frequency to include.
Returns:

f_c – Exchange correlation free energy.

Return type:

float

infinite.rpa_v_tanaka(rs, theta, zeta, nmax)
Evaluate RPA electron-electron energy from Tanaka & Ichimaru JPSJ 55,
2278 (1986). This works.
Parameters:
  • rs (float) – Wigner-Seitz radius.
  • theta (float) – Degeneracy temperature.
  • zeta (int) – Spin polarisation.
  • lmax (int) – Maximum Matsubara frequency to include.
Returns:

V – Potential energy.

Return type:

float

infinite.rpa_xc_energy_tanaka(rs, theta, zeta, lmax)

RPA XC Internal energy as given in Phys. Soc. Jap, 55, 2278 (1986).

Parameters:
  • rs (float) – Wigner-Seitz radius.
  • theta (float) – Degeneracy temperature.
  • zeta (int) – Spin polarisation.
  • lmax (int) – Maximum Matsubara frequency to include.
Returns:

U_xc – Exchange-Correlation energy.

Return type:

float