Green’s Function calculation

In this module ed_gf_superc the interacting impurity Green’s functions \(\hat{G}(z)\) are evaluated for ed_mode = superc.

Briefly, for any eigenstate \(|n\rangle\) in the state_list contributing to the low energy part of the Hamiltonian spectrum the normal Green’s functions:

\[G_{ab\sigma}(z) = \frac{1}{\cal Z}\sum_n e^{\beta E_n}\langle n| c^\dagger_{a\sigma} [z-H]^{-1} c_{b\sigma} |n \rangle + \langle n | c_{a\sigma} [z-H]^{-1} c^\dagger_{b\sigma} | n \rangle\]

and the anomalous ones

\[F_{ab\sigma}(z) = \frac{1}{\cal Z}\sum_n e^{\beta E_n}\langle n| c_{a\sigma} [z-H]^{-1} c_{b\sigma} |n \rangle + \langle n | c^\dagger_{a\sigma} [z-H]^{-1} c^\dagger_{b\sigma} | n \rangle\]

are evaluated using dynamical Lanczos method: a) the partial tridiagonalization of the sector Hamiltonian \(H\) with quantum numbers \(\vec{Q}=S_z = N_\uparrow-N\downarrow\) on the Krylov basis of \(c|n\rangle\) or \(c^\dagger|n\rangle\) is obtained; b) the resulting tridiagonal matrix is further diagonalized to obtained excitations amplitudes or weights \(\langle m | c_{a\sigma} | n \rangle\) or \(\langle m | c^\dagger_{a\sigma} | n \rangle\) for any state \(| m \rangle\) in the spectrum (without knowing the state itself ) and the excitations energies \(\delta E = E_m - E_n\) or poles; c) an controlled approximation to the Kallen-Lehmann sum is constructed for any value of \(z\in{\mathbb C}\) and \(a,b=1,\dots,N_{\rm orb}\), \(\sigma=\uparrow,\downarrow\).

A similar procedure is employed to evaluate the phonons Green’s functions:

\[D(z) = \frac{1}{\cal Z} \sum_n e^{\beta E_n}\langle n|x[z-H]^{-1}x|n\rangle\]

where \(x = (b+b^\dagger)\) and \(b\) (\(b^\dagger\)) is the phonon destruction (creation) operator.

While the Green’s functions are evaluated in a given set of Matsubara impgmats, impdmats and Real-axis points impgreal, impdreal, the weights and the poles obtained in this calculation are stored in a dedicated data structure gfmatrix for a fast recalculation on any given intervals of frequencies in the complex plane.

Finally, the self-energy functions are constructed using impurity Dyson equation \(\hat{\hat{\Sigma}}(z) = \hat{\hat{G}}^{-1}_0(z) - \hat{\hat{G}}^{-1}(z)\), where the \(\hat{\hat{}}\) symbol indicates matrices in the orbital and Nambu space, i.e.

\[\begin{split}\begin{bmatrix} \hat{G} & \hat{F} \\ \hat{\bar{F}} & \hat{\bar{G}} \end{bmatrix}\end{split}\]

Quick access

Routines:

build_gf_superc(), rebuild_gf_superc(), build_sigma_superc()

Used modules

  • sf_constants

    • one()

    • xi()

    • zero

    • pi()

  • sf_timer

  • sf_iotools

  • sf_linalg

  • ed_input_vars: Contains all global input variables which can be set by the user through the input file. A specific preocedure ed_read_input() should be called to read the input file using parse_input_variable() procedure from SciFortran. All variables are automatically set to a default, looked for and updated by reading into the file and, sequentially looked for and updated from command line (std.input) using the notation variable_name=variable_value(s) (case independent).

  • ed_vars_global: Contains all variables, arrays and derived types instances shared throughout the code. Specifically, it contains definitions of the effective_bath, the gfmatrix and the sector data structures.

  • ed_aux_funx: Hosts a number of auxiliary procedures required in different parts of the code. Specifically, it implements: creation/annihilation fermionic operators, binary decomposition of integer representation of Fock states and setup the local impurity Hamiltonian

  • ed_eigenspace: A class implementing a data structure to efficiently store the low part of the Fock space spectrum, automatically spreading and retrieving the eigenstates among/from MPI threads.

  • ed_bath: Contains routines for setting, accessing, manipulating and clearing the bath of the Impurity problem.

  • ed_setup: Contains procedures to set up the Exact Diagonalization calculation, executing all internal consistency checks and allocation of the global memory.

  • ed_sector: Contains procedures to construct the symmetry sectors corresponding to a given set of quantum numbers \(\vec{Q}\), in particular it allocated and build the sector_map connecting the states of a given sector with the corresponding Fock ones.

  • ed_hamiltonian_superc

Subroutines and functions

subroutine  ed_gf_superc/build_gf_superc()

Evaluates the impurity electrons Green’s functions \(G(z)\) and \(F(z)\) and the phonons one \(D(z)\) using dynamical Lanczos method. The result is stored in rank-5 arrays impgmats, impgreal , impfmats , impfreal of dimensions [ nspin , nspin , norb , norb , Lmats / Lreal ] and rank-1 array impdmats, impdreal.

The off-diagonal components of \(G_{ab}\) with \(a \neq b\) as well as the anomalous Green’s functions \(F_{ab}(z)\, \forall a,b\) are obtained using algebraic manipulation to ensure working with hermitian conjugate operators in the dynamical Lanczos procedure.

The weights and the poles obtained in this procedure are saved in a hierarchical data structure (for every state, every channel (creation or annihilation of excitations, normal or anomalous) and every degree of freedom) impgmatrix of type gfmatrix.

subroutine  ed_gf_superc/rebuild_gf_superc()

Reconstructs the system impurity electrons Green’s functions using impgmatrix to retrieve weights and poles.

subroutine  ed_gf_superc/build_sigma_superc()

Obtains the self-energy function \(\Sigma\) on the current Matsubara and Real-axis intervals using impurity Dyson equation \(\hat{\hat{\Sigma}}(z) = \hat{\hat{G}}^{-1}_0(z) - \hat{\hat{G}}^{-1}(z)\).