Exact diagonalization solver: pomerol
¶
pomerol
is an exact diagonalization (ED) library implemented in c++.
DCore
provides an interface to pomerol
library to compute an approximate solution of DMFT with discritized hybridization function.
Features¶
Arbitrary temperature
All interactions available in
DCore
are supported.[experimental] two-particle Green’s function
[todo] tail evaluation of Gf
Install¶
The following library/program needs to be installed:
How to use¶
Mandatory parameters:
[impurity_solver]
name = pomerol
exec_path{str} = /install_directory/bin/pomerol2dcore
Optional parameters:
n_bath{int} = 3 # 0 for default
fit_gtol{float} = 1e-6 # 1e-5 for default
The default value of n_bath
is 0, namely, no bath site is taken into account (Hubbard-I approximation).
For n_bath>0
, hybridization function Delta(iw) is fitted by
Then, the finite-size system consisting of the impurity site and n_bath
bath sites are solve by ED method.
The size of the Hilbert space increases exponentially according to \(2^{n_\textrm{spn-orb}}\) where \(n_\textrm{spn-orb}=2*n_\mathrm{orb} + 2*n_\mathrm{bath}\).
Because of storage limitation, \(n_\textrm{spn-orb} \simeq 16\) is the limits in this solver.
Example¶
The square-lattice model in tutorial is solved by the pomerol solver using the following input parameter set:
[model]
seedname = square
lattice = square
norb = 1
nelec = 1.0
t = -1.0
kanamori = [(4.0, 0.0, 0.0)]
nk = 8
[system]
T = 0.1
n_iw = 1000
mu = 2.0
fix_mu = True
[impurity_solver]
name = pomerol
exec_path{str} = pomerol2dcore
n_bath{int} = 3
fit_gtol{float} = 1e-6
[control]
max_step = 100
sigma_mix = 0.5
time_reversal = True
converge_tol = 1e-5
[post.spectrum]
broadening = 0.4
knode = [(G,0.0,0.0,0.0),(X,0.5,0.0,0.0),(M,0.5,0.5,0.0),(G,0.0,0.0,0.0)]
nk_line = 100
[post.anacont]
omega_max =6.0
omega_min =-5.0
Nomega = 400
It is recommended to set convergence_tol
parameter in [control] block to stop the DMFT loop automatically.
The figure below shows the renormalization factor as a function of n_bath
.
Convergence to the CTHYB result is obtained around n_bath=3
.