Hamiltonian Setup
In ed_hamiltonian_superc
we implement procedures to setup and
build the sector Hamiltonian which are then used elsewhere to obtain
the low part of the energy spectrum or construct the dynamical response
functions.
The sector electron Hamiltonian has the form:
where \(H_{\rm imp}\) describes all the impurity Hamiltonian terms
where \(P_a\) is the external pair field coupled to the orbital resovled pair amplitudes.
The term \(H_{\rm int}\) describes the local electron-electron interaction in the generic Hubbard-Kanamori form with tunable parameters:
where \(U_a=\) uloc
, \(U'=\) ust
,
\(J=\) jh
, \(J_x=\) jx
and \(J_p=\)
jp
.
The \(H_{\rm bath}\) and \(H_{\rm hyb}\) describe, respectively, the bath terms of the Hamiltonian and the hopping between the impurity and the bath levels.
In addition we include electron-phonon coupling terms of the form:
Quick access
- Routines:
build_hv_sector_superc()
,delete_hv_sector_superc()
,vecdim_hv_sector_superc()
,tridiag_hv_sector_superc()
Used modules
ed_hamiltonian_superc_common
Subroutines and functions
- subroutine ed_hamiltonian_superc/build_hv_sector_superc(isector[, hmat])
Builds the matrix-vector product \(H\times \vec{v}\) in the current sector.
Building the sector through
build_sector()
forisector
Retrieve all dimensions of the sectors, setup the MPI split in parallel mode.
If total sector dimension is <
lanc_dim_threshold
then Hamiltonian is stored into dense matrix for Lapack diagonalizationElse we proceeds according to the followins scheme:
ed_sparse_h
=T
ed_sparse_h
=F
called_buildh_superc_main
- Parameters:
isector [integer] – Index of the actual sector to be analyzed
- Options:
hmat (•, •) [complex] – Dense matrix to store the sector Hamiltonian is dim <
lanc_dim_threshold
- subroutine ed_hamiltonian_superc/delete_hv_sector_superc()
Delete the all the memory used to construct the sector Hamiltonian and the corresponding matrix vector products. The sector is deleted, all the dimensions and MPI splitting variables are reset to zero. All the sparse matrices are deallocated having gone out of scope. The abstract interface pointer
spHtimesV_p
for the matrix-vector product is nullified.
- function ed_hamiltonian_superc/vecdim_hv_sector_superc(isector)
Returns the dimensions
vecdim
of the vectors used in the Arpack/Lanczos produces given the current sector indexisector
. If parallel mode is active the returned dimension corresponds to the correct chunk for each thread.- Parameters:
isector [integer] – current sector index
- Return:
vecdim [integer] – vector or vector chunck dimension
- subroutine ed_hamiltonian_superc/tridiag_hv_sector_superc(isector, vvinit, alanc, blanc, norm2)
Returns the parameters \(\vec{\alpha}\) and \(\vec{\beta}\) , respectively
alanc
andblanc
, of the partial tridiagonalization of the sector Hamiltonian on a Krylov basis with starting vectorvvinit
.- Input:
isector
vvinit
- Output:
alanc
corresponding to \(\vec{\alpha}\)blanc
corresponding to \(\vec{\beta}\)norm2
the norm of the input vector \(\langle {\rm vvinit}|{\rm vvinit}\rangle\)
- Parameters:
isector [integer]
vvinit (•) [complex]
alanc (•) [real, allocatable]
blanc (•) [real, allocatable]
norm2 [real]