structure Module

Structure factors at various levels of theory.

structure.bijl_feynman(q, kf)

Bijl-Feynman structure factor.

Parameters:
  • q (float) – Wavevector
  • kf (float) – Fermi wavevector.
Returns:

S(q) – Bijl-Feynman structure factor.

Return type:

float

structure.hartree_fock(q, rs, beta, mu, zeta)

Static structure factor at Hartree–Fock level:

\[S(q) = 1 - (2-\zeta)\frac{r_s^3}{3\pi} \int_0^{\infty} dk k^2 f_k \int_{-1}^{1} du \frac{1}{e^{\beta(\frac{1}{2}(k^2+q^2+2kqu)-\mu)}+1}\]
Parameters:
  • q (float) – kvalue to calculate structure factor at.
  • rs (float) – Wigner-Seitz radius.
  • beta (float) – Inverse temperature.
  • mu (float) – Chemical potential.
  • zeta (int) – Spin polarisation
Returns:

S(q) – Static structure factor.

Return type:

float

structure.hartree_fock_ground_state(q, kf)

Analytic static structure factor at Hartree–Fock level in the ground state:

\[\begin{split}S(q) = \begin{cases} \frac{3}{4} \frac{q}{q_F} - \frac{1}{16} \Big(\frac{q}{q_F}\Big)^3 & \text{if} \ q \le 2q_F \\ 1 & \text{if} \ q > 2q_F \end{cases}\end{split}\]
Parameters:
  • q (float) – kvalue to calculate structure factor at.
  • kf (float) – Fermi wavevector.
Returns:

S(q) – Static structure factor.

Return type:

float

structure.hartree_fock_ground_state_integral(q, rs, kf)

Static structure factor at Hartree–Fock level in the ground state:

\[S(q) = 1 - (2-\zeta)\frac{r_s^3}{3\pi} \int_0^{\infty} dk k^2 \theta(k_F-k) \int_{-1}^{1} du \theta(k_F-(k^2+2kqu+q^2))\]
Parameters:
  • q (float) – kvalue to calculate structure factor at.
  • rs (float) – Wigner-Seitz radius.
  • kf (float) – Fermi wavevector.
Returns:

S(q) – Static structure factor.

Return type:

float

structure.q0_plasmon(q, rs)

Plasmon structure factor.

\[S(q) = \frac{q^2}{2\omega_p}\]
Parameters:
  • q (float) – Wavevector
  • rs (float) – Density parameter.
Returns:

S(q) – Plasmon structure factor.

Return type:

float

structure.rpa(q, beta, mu, rs)

Finite temperature RPA static structure factor evulated as:

\[S(q) = -\frac{1}{\pi} \int_{-\infty}^{\infty} \mathrm{Im}[\chi^{\mathrm{RPA}}(q, \omega)] \coth(\beta\omega/2)\]

Warning

This uses a naive approach which directly evaluates \(\mathrm{Im}[\chi^{\mathrm{RPA}}]\). Better results can be found using rpa_matsubara. In particular this routine will likely miss the plasmon contribution to the structure factor which dominates for some \(q_c(r_s, \Theta)\) .

Parameters:
  • q (float) – (modulus) of wavevector considered.
  • beta (float) – Inverse temperature.
  • mu (float) – Chemical potential.
  • rs (float) – Density parameter.
Returns:

s_q – Static structure factor.

Return type:

float

structure.rpa_ground_state(q, kf, rs)

Zero temperature RPA static structure factor.

\[S(q) = -\frac{1}{\pi} \int_{-\infty}^{\infty} d \omega \mathrm{Im}[\chi^{\mathrm{RPA}}(q, \omega)]\]
Parameters:
  • q (float) – (modulus) of wavevector considered.
  • mu (float) – Chemical potential.
Returns:

s_q – Static structure factor.

Return type:

float

structure.rpa_matsubara(q, theta, eta, zeta, kf, nmax)

RPA static structure factor evaluated using matsubara frequencies.

\[S(q) = -\frac{1}{\pi} \int_{-\infty}^{\infty} d \omega \mathrm{Im}[\chi^{\mathrm{RPA}}(q, \omega)]\]
Parameters:
  • q (float) – (modulus) of wavevector considered.
  • theta (float) – Degeneracy temperature.
  • eta (float) – \(eta\mu\)
  • zeta (int) – Spin polarisation.
  • kf (float) – Fermi Wavevector.
  • nmax (int) – Maximum number of matsubara frequencies to include.
Returns:

s_q – Static structure factor.

Return type:

float