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)\).