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:
and the anomalous ones
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:
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.
Quick access
- Routines:
build_gf_superc()
,rebuild_gf_superc()
,build_sigma_superc()
Used modules
-
one()
xi()
pi()
-
-
ed_input_vars
: Contains all global input variables which can be set by the user through the input file. A specific preocedureed_read_input()
should be called to read the input file usingparse_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 theeffective_bath
, thegfmatrix
and thesector
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 Hamiltonianed_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 thesector_map
connecting the states of a given sector with the corresponding Fock ones.
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 arrayimpdmats
,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 typegfmatrix
.
- 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)\).