dgamore.max_ent#

Analytic continuation of imaginary-frequency quantities to the real axis via the maximum-entropy method. This module wraps the (vendored) dgamore.ana_cont solver to continue the momentum-dependent DGA Green’s function and the local DMFT Green’s function to real frequencies, yielding the spectral function \(A(\mathbf{k}, \omega)\). The momentum-resolved continuation is distributed over MPI ranks across the irreducible BZ.

Functions

orbital_to_band_basis(hk, data)

Rotates a momentum-dependent quantity from the orbital basis into the band (eigen) basis of the Hamiltonian, per k-point: \(O^{\mathrm{band}}(k) = U(k)^\dagger O(k) U(k)\), where the columns of \(U(k)\) are the (energy-ascending) eigenvectors of \(H(k)\).

perform_maxent_dmft(sigma_dmft, hk)

Analytically continues the local DMFT self-energy to the real axis via maximum entropy (per band, with the Hartree shift removed and restored through a Kramers-Kronig transform), then builds the real-frequency lattice Green's function and its spectral function.

perform_maxent_giwk(giwk, name, comm)

Analytically continues the momentum-dependent Green's function to the real axis via maximum entropy, per band and per irreducible-BZ k-point, and assembles the spectral function over the full BZ on rank 0.

dgamore.max_ent.orbital_to_band_basis(hk: ndarray, data: ndarray) ndarray[source]#

Rotates a momentum-dependent quantity from the orbital basis into the band (eigen) basis of the Hamiltonian, per k-point: \(O^{\mathrm{band}}(k) = U(k)^\dagger O(k) U(k)\), where the columns of \(U(k)\) are the (energy-ascending) eigenvectors of \(H(k)\). The Hamiltonian is diagonalized only once per k-point; if a trailing fermionic-frequency axis is present, the same \(U(k)\) is reused for every frequency.

Note that the band basis is defined by \(H(k)\) alone, so for an interacting quantity whose self-energy is not simultaneously diagonal with \(H(k)\) the rotated object is not exactly diagonal – the off-diagonal band components are kept here and only discarded later when the band-diagonal is taken. Within a degenerate eigenspace of \(H(k)\) the individual band assignment is basis-dependent (the subspace trace is not).

Parameters:
  • hk (ndarray) – The Hamiltonian \(H(k)\) of shape [kx, ky, kz, n_orb, n_orb].

  • data (ndarray) – The quantity to rotate, of shape [kx, ky, kz, n_orb, n_orb] or, with a trailing fermionic frequency axis, [kx, ky, kz, n_orb, n_orb, n_v] (rotated in place and returned).

Returns:

The quantity in the band basis (same shape as data).

Raises:

AssertionError – If the momentum/orbital axes of hk and data do not match.

Return type:

ndarray

dgamore.max_ent.perform_maxent_dmft(sigma_dmft: SelfEnergy, hk: ndarray) ndarray[source]#

Analytically continues the local DMFT self-energy to the real axis via maximum entropy (per band, with the Hartree shift removed and restored through a Kramers-Kronig transform), then builds the real-frequency lattice Green’s function and its spectral function.

Parameters:
  • sigma_dmft (SelfEnergy) – The local DMFT SelfEnergy.

  • hk (ndarray) – The Hamiltonian \(H(k)\) of shape [kx, ky, kz, n_orb, n_orb].

Returns:

The spectral function \(A(\mathbf{k}, \omega)\) of shape [kx, ky, kz, n_bands, w].

Return type:

ndarray

dgamore.max_ent.perform_maxent_giwk(giwk: GreensFunction, name: str, comm: mpi4py.MPI.Comm)[source]#

Analytically continues the momentum-dependent Green’s function to the real axis via maximum entropy, per band and per irreducible-BZ k-point, and assembles the spectral function over the full BZ on rank 0. The k-points are distributed across MPI ranks; failed continuations are set to zero.

Parameters:
  • giwk (GreensFunction) – The momentum-dependent GreensFunction to continue.

  • name (str) – Label used in log messages (e.g. "DGA").

  • comm (mpi4py.MPI.Comm) – The MPI communicator.

Returns:

The spectral function \(A(\mathbf{k}, \omega)\) of shape [k, n_bands, w] (full BZ on rank 0).