Bethe-Slapter-type equation solver
ElectronGas.BSeq
— ModuleBethe-Slapter-type equation solver and the application to Cooper-pair linear response approach.
ElectronGas.BSeq.BSeq_solver
— Methodfunction BSeq_solver(param, G2::GreenFunc.MeshArray, kernel, kernel_ins, qgrids::Vector{CompositeGrid.Composite},
Euv; Ntherm=120, rtol=1e-10, α=0.7, source::Union{Nothing,GreenFunc.MeshArray}=nothing,
source_ins::GreenFunc.MeshArray=GreenFunc.MeshArray([1], G2.mesh[2]; dtype=Float64, data=ones(1, G2.mesh[2].size))
)
Bethe-Slapter equation solver by self-consistent iterations.
\[ R(\omega_n, k) = \eta(\omega_n, k) - \frac{1}{\beta} \sum_m \frac{d^dp}{(2\pi)^d} \Gamma(\omega_n,k;\omega_m,p) G^{(2)}(\omega_m,p)R(\omega_m,p) ,\]
where $\eta(\omega_n, k)$ is the sourced term, $\Gamma(k,\omega_n;p,\omega_m)$ is the particle-particle four-point vertex with zero incoming momentum and frequency, and $G^{(2)}(p,\omega_m)$ is the product of two single-particle Green's function.
Arguments
param
: parameters of ElectronGas.G2
: product of two single-particle Green's function (::GreenFunc.MeshArray).kernel
: dynamical kernel of the Legendre decomposed effective interaction.kernel_ins
: instant part of the the Legendre decomposed effective interaction.qgrids
: momentum grid of kernel (::Vector{CompositeGrid.Composite}).Euv
: the UV energy scale of the spectral density.Ntherm
: thermalization step. By defalut,Ntherm=120
.rtol
: tolerance absolute error. By defalut,rtol=1e-10
.α
: mixing parameter in the self-consistent iteration. By default,α=0.7
.source
: dynamical part of sourced term in imaginary-time space. By default,source=nothing
.source_ins
: instant part of sourced term. By default,source_ins=1
.
Return
- Inverse of low-energy linear response
1/R₀
($R_0=R(\omega_0, k_F)$) - Bethe-Slapter amplitude
F
in imaginary-frequency space
\[ F(\omega_m, p) = G^{(2)}(\omega_m,p)R(\omega_m,p)\]
- dynamical part of
R
in imaginary-time space - instant part of
R
in imaginary-time space
ElectronGas.BSeq.G02wrapped
— Methodfunction G02wrapped(Euv, rtol, sgrid, param)
Returns the product of two bare single-particle Green's function.
\[ G_0^{(2)}(\omega_n, k) = 1/(\omega_n^2+\omega^2)\]
where $\omega= k^2/(2m)-\mu$.
ElectronGas.BSeq.G2wrapped
— Methodfunction G2wrapped(Σ::GreenFunc.MeshArray, Σ_ins::GreenFunc.MeshArray, param)
Returns the product of two single-particle Green's function from given dynamical and instant parts of self-energy (Σ
and Σ_ins
).
\[ G_0^{(2)}(\omega_n, k) = 1/\left([\omega_n - \mathrm{Im} \Sigma(\omega_n, k)]^2+ [\omega+ \mathrm{Re} \Sigma(\omega_n, k) - \Sigma_{\mathrm{shift}}]^2\right)\]
where $\omega= k^2/(2m)-\mu$ and $\Sigma_{\mathrm{shift}}=\mathrm{Re} \Sigma(\omega_0, k_F)$.
ElectronGas.BSeq.calcF!
— Methodfunction calcF!(F::GreenFunc.MeshArray, R::GreenFunc.MeshArray, R_ins::GreenFunc.MeshArray, G2::GreenFunc.MeshArray)
Calculation of the Bethe-Slapter amplitude F
from the product of single-particle Green's function G2
and the dynamical and instant parts of R
, R_ins
. Compute in frequency space to avoid \tau integration.
\[ F(\omega_n, k) = G^{(2)}(\omega_n, k) [R(\omega_n, k)+R_{\mathrm{ins}}(k)]\]
ElectronGas.BSeq.calcR!
— Methodfunction calcR!(F::GreenFunc.MeshArray, R::GreenFunc.MeshArray, R_ins::GreenFunc.MeshArray,
source::Union{Nothing,GreenFunc.MeshArray}, kernel, kernel_ins, qgrids::Vector{CompositeGrid.Composite})
Calculate $kR(\tau, k)$ in three dimensions by given pF(\tau, p)
and kernel
. Compute in imaginary time space to aviod frequency convolution.
\[ kR(\tau, k) = k\eta(\tau, k) - \int \frac{dp}{4\pi^2} H(\tau,k,p) pF(\tau,p),\]
where $H(\tau,k,p)\equiv kp W(\tau,k,p)$ is the helper function of interaction (see Legendre Decomposition of Interaction) and the kernel argument. The dynamical source
$k\eta(\tau, k)$ will be added if it is given as GreenFunc.MeshArray
.
ElectronGas.BSeq.calcR_2d!
— Methodfunction calcR_2d!(F::GreenFunc.MeshArray, R::GreenFunc.MeshArray, R_ins::GreenFunc.MeshArray,
source::Union{Nothing,GreenFunc.MeshArray}, kernel, kernel_ins, qgrids::Vector{CompositeGrid.Composite})
Calculate $kR(\tau, k)$ in two dimensions by given pF(p)
and kernel
Compute in imaginary time space to aviod frequency convolution.
\[ kR(\tau, k) = k\eta(\tau, k) - \int \frac{pdp}{4\pi^2} W(\tau,k,p) pF(\tau,p),\]
where $W$ is the interaction and the kernel argument. The dynamical source
$k\eta(\tau, k)$ will be added if it is given as GreenFunc.MeshArray
.
ElectronGas.BSeq.initFR
— Methodfunction initFR(Euv, rtol, sgrid, param)
Initalize the Bethe-Slapter amplitude F
in imaginary-frequency space and R ≡ F(GG)⁻¹
in imaginary-time space.
Arguments:
Euv
: the UV energy scale of the spectral density. parameter for DLR grids.rtol
: tolerance absolute error. parameter for DLR grids.sgrid
: momentum grid of F and Rparam
: parameters of ElectronGas.
Return
- $F(\omega_n, k)=0$ as a
GreenFunc.MeshArray
- the dynamical part of
R
in the imaginary-time space as aGreenFunc.MeshArray
. In the imaginary-frequency space,
\[ R(\omega_n, k) = \frac{1}{\Omega_c^2+e^2}\left(1- \frac{2\omega_n^2}{\omega_n^2+\Omega_c^2} \right)\]
where $e=k^2/(2m)-\mu$ and $\Omega_c =0.01$.
- the instant part of
R
as aGreenFunc.MeshArray
, $R_{\mathrm{ins}}(k)=0$.
ElectronGas.BSeq.linearResponse
— Methodfunction linearResponse(param, channel::Int; Euv=100 * param.EF, rtol=1e-10,
maxK=10param.kF, minK=1e-7param.kF, Nk=8, order=8, sigmatype=:none, int_type=:rpa, α=0.7)
Implmentation of Cooper-pair linear response approach.
Arguments:
param
: parameters of ElectronGas.channel::Int
: orbital angular channel (0: s-wave, 1: p-wave, ...)Euv
: the UV energy scale of the spectral density. By default,Euv=100EF
.rtol
: tolerance absolute error. By defalut,rtol=1e-10
.maxK
: maximum momentum of kgrid and qgrids. By default,maxK=10kF
.minK
: minimum interval of panel kgrid and qgrids. By default,minK=1e-7kF
.Nk
: number of grid points of panel kgrid and qgrids. By defalut,Nk=8
.order
: number of grid points of subgrid of kgrid and qgrids. By defalut,order=8
.sigmatype
: type of fermionic self-energy. (no self-energy :none, G0W0 approximation :g0w0)int_type
: type of effective interaction. By default,int_type=:rpa
.α
: mixing parameter in the self-consistent iteration. By default,α=0.7
.
Return:
- Inverse of low-energy linear response
1/R₀
($R_0=R(\omega_0, k_F)$) - Linear response
R(ωₙ, k)
, which is calculated by the Bethe-Slapter-type equation
\[ R(\omega_n, k) = 1 - \frac{1}{\beta} \sum_m \int \frac{d^dp}{(2\pi)^d} \Gamma(\omega_n,k;\omega_m,p) G^{(2)}(\omega_m,p)R(\omega_m,p)\]
where $1$ is the default sourced term, $\Gamma(k,\omega_n;p,\omega_m)$ is the particle-particle four-point vertex with zero incoming momentum and frequency, and $G^{(2)}(p,\omega_m)$ is the product of two single-particle Green's function.