This application implements the Hubbard-I solver in pytriqs using the lightweight diagonalization routine which come with triqs/atom_diag.
The Solver comes with the same usage as, e.g., the cthyb solver.
After constructing the impurity solver instance by
S = Solver(beta = beta, gf_struct)
and initializing the non_interacting Green's function
G.G0_iw = ...
we can solve the impurity problem by
S.solve(h_int = h_int)
With optional parameters in the solve
function calc_gtau = True
, calc_gw = True
, and calc_gl = True
the solver also additionally calculates the interacting Green's function on the real axis, imaginary time and legendre. For the real and Matsubara axis, also the self energy is calculated. By using calc_dm = True
the density matrix (stored in S.dm) is also calculated which enables the calculation of local observables. For further details refer to the documentation of atom_diag on the triqs homepage.
The mesh for the Green function is defined in the first step, e.g., by
Solver(beta = beta, gf_struct, n_iw= 512, n_tau = 200, n_w = 1001, w_min=-10, w_max=10, idelta=0.1, n_l=30)
where n_w, w_min, w_max, idelta
define the real axis and broadening by an imaginary offset.
The only thing you need is a working triqs installation. If you have sourced the triqsvars.sh
file everything works automatically.
git clone https://github.com/malte-schueler/triqs_hubbardI triqs_hubbardI.src
mkdir triqs_hubbardI.build && cd triqs_hubbardI.build
cmake ../triqs_hubbardI.src
make
make test
make install