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
Functions
ZenCore.mixer_call — Functionmixer_call(::NULLMixer, it::IterInfo, ai::Array{Impurity,1})
mixer_call(::ΣMixer, it::IterInfo, ai::Array{Impurity,1})
mixer_call(::ΔMixer, it::IterInfo, ai::Array{Impurity,1})
mixer_call(::EMixer, it::IterInfo, ai::Array{Impurity,1})
mixer_call(::ΓMixer, it::IterInfo, ai::Array{Impurity,1})Try to mix various functions during the iterations, including self-energy functions Σ, hybridization functions Δ, effective impurity levels E, and correction for density matrix Γ. It acts as a dispatcher.
See also: _mixer_.
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, amix, distance.
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, amix.
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, amix.
ZenCore.mixer_gcorr — Functionmixer_gcorr(it::IterInfo)Try to mix the correction for density matrix Γ and then use the mixed value to update the dmft2/dmft.gcorr file. Here we use the Kerker algorithm, instead of the linear mixing algorithm.
See also: mixer_core, distance.
ZenCore.amix — Functionamix(it::IterInfo)Return the mixing factor for mixer component. It should depend on the current iteration number, instead of being 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_gcorr.