Polarization
ElectronGas.Polarization.Polarization0_3dZeroTemp_LinearDispersion
— Method@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}\]
ElectronGas.Polarization.Polarization0_3dZeroTemp_Plasma
— Method@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.
ElectronGas.Polarization.Polarization0_3dZeroTemp_Q
— Method@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)
ElectronGas.Polarization.Polarization0_FiniteTemp
— Methodfunction 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.
ElectronGas.Polarization.Polarization0_ZeroTemp
— Methodfunction 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
ElectronGas.Polarization.Polarization0wrapped
— Methodfunction 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).