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_callFunction
    mixer_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_sigmaFunction
    mixer_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_deltaFunction
    mixer_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_eimpxFunction
    mixer_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_gcorrFunction
    mixer_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.amixFunction
    amix(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.distanceFunction
    distance(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.