Polarization

ElectronGas.Polarization.Polarization0_3dZeroTemp_LinearDispersionMethod
@inline function Polarization0_3dZeroTemp_LinearDispersion(q, n, param)

Polarization for electrons with dispersion linearized near the Fermi surface. See "Condensed Matter Field Theory" by Altland, Eq. (5.30).

\[Π_{q, ω_n}=-\frac{1}{2} N_F \left[1-\frac{i ω_n}{2 v_F q} \operatorname{ln} \left(\frac{i ω_n+v_F q}{i ω_n-v_F q}\right)\right]\]

The log function can be replaced with arctan,

\[\operatorname{arctan}(x) = \frac{i}{2} \ln \frac{i+x}{i-x}\]

source
ElectronGas.Polarization.Polarization0_3dZeroTemp_PlasmaMethod
@inline function Polarization0_3dZeroTemp_Plasma(q, n, param; factor = 3.0)

This polarization ansatz preserves the plasma frequency and the static limit.

\[Π(q, iω_n) = -\frac{1}{2} \frac{q^2}{4πe^2} \frac{ω_p^2}{ω_n^2 + ω_p^2\cdot (q/q_{TF})^2} = -\frac{N_F}{2}\left(1-\frac{3}{3+(q \cdot vF/ω_n)^2}\right)\]

where ω_p is the plasma frequency, and

\[ω_p = v_F q_{TF}/\sqrt{3}\]

User may change the parameter factor to modify the plasma frequency in this ansatz.

source
ElectronGas.Polarization.Polarization0_3dZeroTemp_QMethod
@inline function Polarization0_3dZeroTemp_Q(q, n, param)

Polarization for electrons ansatz inspired by "Condensed Matter Field Theory" by Altland, Problem 6.7.

\[Π(q, iω_n) = -\frac{1}{2} N_F \left(1-\frac{π}\sqrt{\left(\frac{2v_F q}{ω_n} \right)^2+π^2}\right)\]

This ansatz is asymtotically exact in the large q limit, and is only qualitatively correct in the small q limit.

Remark:

For the exact free-electron polarization, we expect In the limit q ≫ ω_n,

\[Π(q, iω_n) → -\frac{1}{2} N_F \left(1-\frac{π}{2}\frac{|ω_n|}{v_F q}\right)\]

and in the limit q ≪ ω_n,

\[Π(q, iω_n) → -\frac{1}{2} N_F \frac{1}{3}\left(\frac{v_F q}{ω_n}\right)^2\]

The above ansatz has the right large-q behavior, while its small-q is slightly different (prefactor 1/3 is modified to 2/π^2≈0.2026)

source
ElectronGas.Polarization.Polarization0_FiniteTempMethod
function Polarization0_FiniteTemp(q, n, param, maxk=20, scaleN=20, minterval=1e-6, gaussN=10)

Finite temperature one-spin Π0 function for matsubara frequency and momentum. Analytically sum over transfer frequency and angular dependence of momentum, and numerically calculate integration of magnitude of momentum. Slower(~200μs) than Polarization0ZeroTemp. Assume G0^{-1} = iω_n - (k^2/(2m) - mu)

#Arguments:

  • q: momentum
  • n: matsubara frequency given in integer s.t. ωn=2πTn
  • param: other system parameters
  • maxk: optional, upper limit of integral -> maxk*kF
  • scaleN: optional, N of Log grid in LogDensedGrid, check CompositeGrids for more detail
  • minterval: optional, actual minterval of grid is this value times min(q,kF)
  • gaussN: optional, N of GaussLegendre grid in LogDensedGrid.
source
ElectronGas.Polarization.Polarization0_ZeroTempMethod
function Polarization0_ZeroTemp(q, n, param)

Zero temperature one-spin Π0 function for matsubara frequency and momentum. For low temperature the finite temperature polarization could be approximated with this function to run faster(~200ns). Assume G0^{-1} = iωn - (k^2/(2m) - E_F).

#Arguments:

  • q: momentum
  • n: matsubara frequency given in integer s.t. ωn=2πTn
  • param: other system parameters
source
ElectronGas.Polarization.Polarization0wrappedMethod
function Polarization0wrapped(Euv, rtol, sgrid::SGT, param, pifunc = Polarization0_ZeroTemp) where{TGT, SGT}

Π0 function for matsubara frequency and momentum. Use Polarization0ZeroTemp by default, Polarization0FiniteTemp when pifunc is specified. Assume G0^{-1} = iωn - (k^2/(2m) - E_F). Return full polarization0 function stored in GreenFunc.GreenBasic.Green2DLR.

#Arguments:

  • Euv: Euv of DLRGrid
  • rtol: rtol of DLRGrid
  • sgrid: momentum grid
  • param: other system parameters
  • pifunc: single point Π0 function used. Require form with pifunc(k, n, param).
source