poles

edrixs.poles.get_spectra_from_poles(poles_dict, omega_mesh, gamma_mesh, temperature)[source]

Given the dict of poles, calculate XAS or RIXS spectra using continued fraction formula,

\[I(\omega_{i}) =-\frac{1}{\pi}\text{Im} \left[ \frac{1}{x - \alpha_{0} - \frac{\beta_{1}^2}{x-\alpha_{1} - \frac{\beta_{2}^2}{x-\alpha_{2} - ...}} }\right],\]

where, \(x = \omega_{i}+i\Gamma_{i} + E_{g}\).

Parameters:
poles_dict: dict

Dict containing information of poles, which are calculated from xas_fsolver and rixs_fsolver. The private Fortran I/O helper read_poles_from_file constructs this dictionary from native pole files.

omega_mesh: 1d float array

Energy grid.

gamma_mesh: 1d float array

Life-time broadening.

temperature: float number

Temperature (K) for boltzmann distribution.

Returns:
spectra: 1d float array

The calculated XAS or RIXS spectra.

edrixs.poles.merge_pole_dicts(list_pole_dict)[source]

Given a list of dict of poles, merge them into one dict of poles

Parameters:
list_pole_dict: list of dict

Dict containing information of poles, which are calculated from xas_fsolver and rixs_fsolver.

Returns:
new_pole_dict: dict of poles

New dict of poles.