Mixer
Tools for mixing the self-energy functions $\Sigma$, hybridization functions $\Delta$, and local impurity levels $\epsilon_i$. They adopted the linear mixing algorithm. We also implement the so-called Kerker algorithm to mix the correlation-induced correction for density matrix $\Gamma$.
Source: mixer.jl
Contents
Index
ZenCore.amix
ZenCore.distance
ZenCore.mixer_delta
ZenCore.mixer_eimpx
ZenCore.mixer_gamma
ZenCore.mixer_sigma
Functions
ZenCore.mixer_sigma
— Functionmixer_sigma(it::IterInfo, ai::Array{Impurity,1})
Try to mix the self-energy functions Σ and then use the mixed values to update the dmft1/sigma.bare
file.
See also: mixer_core
.
ZenCore.mixer_delta
— Functionmixer_delta(it::IterInfo, ai::Array{Impurity,1})
Try to mix the hybridization functions Δ and then use the mixed values to update the dmft1/dmft.delta
file.
See also: mixer_core
.
ZenCore.mixer_eimpx
— Functionmixer_eimpx(it::IterInfo, ai::Array{Impurity,1})
Try to mix the local impurity levels εᵢ and then use the mixed value to update the dmft1/dmft.eimpx
file.
See also: mixer_core
.
ZenCore.mixer_gamma
— Functionmixer_gamma(it::IterInfo)
Try to mix the correction for density matrix Γ and then use the mixed value to update the dmft2/dmft.gamma
file. Here we use the Kerker algorithm, instead of the linear mixing algorithm.
See also: mixer_core
.
ZenCore.amix
— Functionamix(it::IterInfo)
Return the mixing factor for mixer component. It should depend on the current iteration number, instead of a constant.
See also: IterInfo
.
ZenCore.distance
— Functiondistance(SA::Vector{Array{C64,4}}, SB::Vector{Array{C64,4}})
Calculate the difference between two multi-dimensional arrays. Usually We apply this function to calculate the difference between two self-energy functions.
See also: mixer_sigma
.
distance(GA::Array{C64,4}, GB::Array{C64,4})
Calculate the difference between two multi-dimensional arrays. Usually We apply this function to calculate the difference between two corrections for density matrix.
See also: mixer_gamma
.