Single-impurity Anderson model
Introduction
The investigation of the Kondo effect in single-impurity Anderson model is crucial as it serves both as a valuable testing ground for the theories of the Kondo effect and has the potential to lead to a better understanding of this intrinsic many-body phenomena. For further detailed discussions of this model (under different parameters) using HierarchicalEOM.jl
, we recommend to read the article (Huang et al. 2023).
Hamiltonian
We consider a single-level electronic system [which can be populated by a spin-up (\(\uparrow\)) or spin-down (\(\downarrow\)) electron] coupled to a fermionic reservoir (\(\textrm{f}\)). The total Hamiltonian is given by \(H_{\textrm{T}}=H_\textrm{s}+H_\textrm{f}+H_\textrm{sf}\), where each terms takes the form
\[ \begin{aligned} H_{\textrm{s}} &= \epsilon \left(d^\dagger_\uparrow d_\uparrow + d^\dagger_\downarrow d_\downarrow \right) + U\left(d^\dagger_\uparrow d_\uparrow d^\dagger_\downarrow d_\downarrow\right),\\ H_{\textrm{f}} &=\sum_{\sigma=\uparrow,\downarrow}\sum_{k}\epsilon_{\sigma,k}c_{\sigma,k}^{\dagger}c_{\sigma,k},\\ H_{\textrm{sf}} &=\sum_{\sigma=\uparrow,\downarrow}\sum_{k}g_{k}c_{\sigma,k}^{\dagger}d_{\sigma} + g_{k}^*d_{\sigma}^{\dagger}c_{\sigma,k}. \end{aligned} \]
Here, \(d_\uparrow\) \((d_\downarrow)\) annihilates a spin-up (spin-down) electron in the system, \(\epsilon\) is the energy of the electron, and \(U\) is the Coulomb repulsion energy for double occupation. Furthermore, \(c_{\sigma,k}\) \((c_{\sigma,k}^{\dagger})\) annihilates (creates) an electron in the state \(k\) (with energy \(\epsilon_{\sigma,k}\)) of the reservoir.
Now, we need to build the system Hamiltonian and initial state with the package QuantumToolbox.jl
to construct the operators.
ϵ = -5
U = 10
σm = sigmam() # σ-
σz = sigmaz() # σz
II = qeye(2) # identity matrix
# construct the annihilation operator for both spin-up and spin-down
# (utilize Jordan–Wigner transformation)
d_up = tensor(σm, II)
d_dn = tensor(-1 * σz, σm)
Hsys = ϵ * (d_up' * d_up + d_dn' * d_dn) + U * (d_up' * d_up * d_dn' * d_dn)
Quantum Object: type=Operator dims=[2, 2] size=(4, 4) ishermitian=true
4×4 SparseMatrixCSC{ComplexF64, Int64} with 2 stored entries:
⋅ ⋅ ⋅ ⋅
⋅ -5.0+0.0im ⋅ ⋅
⋅ ⋅ -5.0+0.0im ⋅
⋅ ⋅ ⋅ ⋅
Construct bath objects
We assume the fermionic reservoir to have a Lorentzian-shaped spectral density, and we utilize the Padé decomposition. Furthermore, the spectral densities depend on the following physical parameters:
- the coupling strength \(\Gamma\) between system and reservoirs
- the band-width \(W\)
- the product of the Boltzmann constant \(k\) and the absolute temperature \(T\) : \(kT\)
- the chemical potential \(\mu\)
- the total number of exponentials for the reservoir \(2(N + 1)\)
Γ = 2
μ = 0
W = 10
kT = 0.5
N = 5
bath_up = Fermion_Lorentz_Pade(d_up, Γ, μ, W, kT, N)
bath_dn = Fermion_Lorentz_Pade(d_dn, Γ, μ, W, kT, N)
bath_list = [bath_up, bath_dn]
2-element Vector{FermionBath}:
HierarchicalEOM.FermionBath object with 12 exponential-expansion terms
HierarchicalEOM.FermionBath object with 12 exponential-expansion terms
Construct HEOMLS matrix
Preparing block matrices for HEOM Liouvillian superoperator (using 4 threads)...
Progress: [ ] 0.0% --- Elapsed Time: 0h 00m 01s (ETA: 0h 38m 44s)Progress: [==============================] 100.0% --- Elapsed Time: 0h 00m 01s (ETA: 0h 00m 00s)
Constructing matrix...[DONE]
Preparing block matrices for HEOM Liouvillian superoperator (using 4 threads)...
Progress: [==============================] 100.0% --- Elapsed Time: 0h 00m 00s (ETA: 0h 00m 00s)
Constructing matrix...[DONE]
Fermion type HEOMLS matrix acting on odd-parity ADOs
system dims = [2, 2]
number of ADOs N = 2325
data =
MatrixOperator(37200 × 37200)
Solve stationary state of ADOs
Calculate density of states (DOS)
Calculating density of states in frequency domain...
Progress: [===== ] 19.0% --- Elapsed Time: 0h 00m 01s (ETA: 0h 00m 04s)Progress: [============ ] 42.9% --- Elapsed Time: 0h 00m 02s (ETA: 0h 00m 02s)Progress: [================== ] 61.9% --- Elapsed Time: 0h 00m 03s (ETA: 0h 00m 01s)Progress: [========================= ] 85.7% --- Elapsed Time: 0h 00m 04s (ETA: 0h 00m 00s)Progress: [==============================] 100.0% --- Elapsed Time: 0h 00m 04s (ETA: 0h 00m 00s)
[DONE]
21-element Vector{Float64}:
0.024341620652868125
0.04465552042384671
0.09077144051561165
0.1929888055674428
0.29351536894471525
0.23367107985909338
0.15864674406917825
0.1237987795050877
0.11772111509217494
0.14524303704733388
⋮
0.11772111509217663
0.12379877950508988
0.15864674406918147
0.2336710798590986
0.2935153689447211
0.1929888055674464
0.090771440515613
0.044655520423847135
0.024341620652868233
plot the results
Version Information
__
/ \
__ __ __ \__/ __
| | | | / \ / \
| | | | ______ ______ \__/_ _\__/
| |___| |/ __ \ / __ \ / ' \/ \
| ___ | |__) | / \ | _ _ |
| | | | ____/| ( ) | / \ / \ |
| | | | |____ | \__/ | | | | | |
|__| |__|\______) \______/|__| |_| |_|
Julia framework for Hierarchical Equations of Motion
≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡
Copyright © QuTiP team 2023 and later.
Lead developer : Yi-Te Huang
Other developers:
Simon Cross, Neill Lambert, Po-Chen Kuo and Shen-Liang Yang
Package information:
====================================
Julia Ver. 1.11.2
HierarchicalEOM Ver. 2.3.3
QuantumToolbox Ver. 0.24.0
SciMLOperators Ver. 0.3.12
LinearSolve Ver. 2.38.0
OrdinaryDiffEqCore Ver. 1.14.1
System information:
====================================
OS : Linux (x86_64-linux-gnu)
CPU : 4 × AMD EPYC 7763 64-Core Processor
Memory : 15.615 GB
WORD_SIZE: 64
LIBM : libopenlibm
LLVM : libLLVM-16.0.6 (ORCJIT, znver3)
BLAS : libopenblas64_.so (ilp64)
Threads : 4 (on 4 virtual cores)