Spin Susceptibility
In ed_chi_spin
we evaluate the impurity spin-spin
susceptibility, defined as:
where \(S^z_a\) is the z-component of the spin operator of the orbital \(a\) and \(\omega \in {\mathbb C}\). As for the Green’s functions, the susceptibility is evaluated using the dynamical Lanczos method: a) the partial tridiagonalization of the sector Hamiltonian \(H\) with quantum numbers \(\vec{Q}=[\vec{N}_\uparrow,\vec{N}_\downarrow]\) on the Krylov basis of \(S^z_a|n\rangle\) is obtained; b) the resulting tridiagonal matrix is further diagonalized to obtained excitations amplitudes or weights \(\langle m | S^z_a | 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 \(a,b=1,\dots,N_{\rm orb}\).
Note
A more general susceptibility function for the other components of the spin operators \(S_x, S_y\) should be implemented.
Description
Evaluates the impurity spin-spin susceptibility.
Quick access
- Routines:
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.ed_hamiltonian_normal
: Setup and build the sector Hamiltonian, returns the correct dimension of the vectors in the Arpack/Lanczos procedure in each thread and provides an interface to Tri-Diagonalize the Hamiltonian on a Krylov basis given a starting vector.
Subroutines and functions
- subroutine ed_chi_spin/build_chi_spin_normal()
Evaluates the impurity Spin susceptibility \(\chi^z=\langle T_\tau S^z_a(\tau) S^z_b\rangle\) in the Matsubara \(i\omega_n\) and Real \(\omega\) frequency axis as well as imaginary time \(\tau\).
As for the Green’s function, the off-diagonal component of the the susceptibility is determined using an algebraic manipulation to ensure use of Hermitian operator in the dynamical Lanczos.