fit_hyb¶

edrixs.fit_hyb.fit_func(x, *args)[source]

Given frequency $$\omega$$, bath energy level $$\epsilon_{l}$$ and the hybridization strength $$V_{l}$$, return the hybridization function,

$\Delta(\omega)=\sum_{l=1}^{N}\frac{|V_{l}|^2}{\omega-\epsilon_{l}}.$
Parameters
x: 1d float array

Frequency $$\omega$$, the first half is the real part and the second half is the imaginary part.

args: 1d float array

The first half is the bath energy level $$\epsilon_{l}$$ and the second half if the hybridization strength $$V_{l}$$.

Returns
y: 1d float array

The calculated hybridization function $$\Delta(\omega)$$, the first half is the real part and the second half is the imaginary part.

edrixs.fit_hyb.fit_hyb(x, y, N, p0)[source]

Given the hybridization function $$\Delta(\omega)$$, call function curve_fit in scipy to fit bath energy levels $$\epsilon_{l}$$ and hybridization strength $$V_{l}$$.

$\Delta(\omega)=\sum_{l=1}^{N}\frac{|V_{l}|^2}{\omega-\epsilon_{l}}.$
Parameters
x: 1d complex array

Frequency $$\omega$$.

y: 1d complex array

Hybridization function $$\Delta(\omega)$$.

N: int

Number of bath sites

p0: N-length 1d float array

Initial guess, the first half is $$\epsilon_{l}$$ and the second half is $$V_{l}$$.

Returns
e: N-length 1d float array

The fitted bath energy levels $$\epsilon_{l}$$.

v: N-length 1d float array

The fitted hybridization strength $$V_{l}$$.

edrixs.fit_hyb.get_hyb(x, e, v)[source]

Given the fitted $$\epsilon_{l}$$ and $$V_{l}$$, calcualte the hybridization function $$\Delta(\omega)$$,

$\Delta(\omega)=\sum_{l=1}^{N}\frac{|V_{l}|^2}{\omega-\epsilon_{l}}.$
Parameters
x: 1d complex array

Frequency $$\omega$$.

e: N-length 1d float array

The fitted bath energy levels.

v: N-length 1d float array

The fitted hybridization strength.

Returns
y: 1d complex array

The calculated hybridization function $$\Delta(\omega)$$.