fcdmft.ac.two_pole module#

fcdmft.ac.two_pole.AC_twopole_diag(sigma, omega, orbs, nocc)[source]#

Analytic continuation to real axis using a two-pole model

Args:

sigma : 2D array (norbs, nomega) omega : 1D array (nomega) orbs : list nocc : integer

Returns:

coeff: 2D array (ncoeff, norbs)

fcdmft.ac.two_pole.AC_twopole_full(sigma, omega, orbs, nocc)[source]#

Analytic continuation to real axis using a two-pole model

Args:

sigma : 3D array (norbs, norbs, nomega) omega : 1D array (nomega) orbs : list nocc : integer

Returns:

coeff: 3D array (ncoeff, norbs, norbs)

class fcdmft.ac.two_pole.TwoPoleAC(orbs, nocc, **options)[source]#

Bases: AC_Method

Two-pole analytic continuation method.

Methods

ac_eval(freqs[, axis])

Evaluate two-pole AC at arbitrary complex frequencies.

ac_fit(data, omega[, axis])

Compute two-pole AC coefficients for the given data and omega.

diagonal([axis1, axis2])

Create a new instance of the AC method with only the diagonal elements

save(chkfilename[, dataname])

Save the AC object and coefficients to an HDF5 file.

ac_eval(freqs, axis=-1)[source]#

Evaluate two-pole AC at arbitrary complex frequencies.

Parameters:
freqsnp.ndarray[np.complex128]

1D array of complex frequencies

axisint, optional

Indicates which axis of the output array should correspond to the frequency axis, by default -1. Example: if you want (nmo, nmo, nfreq), call ac_eval(freqs, axis=-1)

if you want (nfreq, nmo, nmo), call ac_eval(data, freqs, axis=0)

Returns:
np.ndarray

Pade-Thiele AC evaluated at freqs

ac_fit(data, omega, axis=-1)[source]#

Compute two-pole AC coefficients for the given data and omega.

Parameters:
datanp.ndarray

Data to be fit, e.g. self energy

omeganp.ndarray[np.double]

1D imaginary frequency grid

axisint, optional

Indicates which axis of the data array corresponds to the frequency axis, by default -1. Example: data.shape is (nmo, nmo, nw), call ac_fit(data, omega, axis=-1)

data.shape is (nw, nmo, nmo), call ac_fit(data, omega, axis=0)

diagonal(axis1=0, axis2=1)[source]#
Create a new instance of the AC method with only the diagonal elements

of the self.coeff tensor. Convenient for getting diagonal of self-energy after calculating the full self-energy matrix.

This behaves more or less the same as np.diagonal.

Parameters:
axis1int, optional

First axis, by default 0

axis2int, optional

Second axis, by default 1

Returns:
object

New instance of the AC method with only the diagonal elements.

fcdmft.ac.two_pole.two_pole(freqs, coeff)[source]#
fcdmft.ac.two_pole.two_pole_fit(coeff, omega, sigma)[source]#