A word on the algorithm
The continuous-time quantum Monte Carlo (CTQMC) algorithm
is based on a hybridization expansion of the partition function
, . The principle of the algorithm is to sample
stochastically the diagrams of this expansion with the correct Monte Carlo
weights and to compute the Green’s function. A Monte Carlo configuration
\(\mathcal{C}\) is a set of fermionic operators (in interaction
representation) at different imaginary times:
\[\mathcal{C} = d^\dagger_{\alpha_1}(\tau_1) d_{\alpha'_1}(\tau'_1) d^\dagger_{\alpha_2}(\tau_2)
d^\dagger_{\alpha_3}(\tau_3) \ldots d_{\alpha}(\tau_N)\]
The algorithm samples new configurations by inserting/removing pairs of
operators, or by moving operators in the configuration. Note that it is a
finite-temperature algorithm, and so \(\tau \in [0,\beta]\), where
\(\beta\) is the inverse temperature. The Monte Carlo weight of a
configuration is essentially the product of the trace \(\mathrm{Tr} \,
\mathcal{C}\) and the determinant of a matrix, whose elements are the
hybridization functions \(\Delta_{\alpha_i \alpha_j'} (\tau_i - \tau_j')\).
The main inputs of the solver are the hybridization functions
\(\Delta(i\omega_n)\) and the local Hamiltonian
\(\mathcal{H}_\mathrm{loc}\) of the impurity. The solver then computes the
Green’s function on the imaginary-time interval \([0,\beta]\). This can be
done in the imaginary time representation, as well as on a basis of Legendre
polynomials, as described in Ref. .
Note that our implementation of the algorithm uses a matrix representation
of the operators \(d^\dagger_{\alpha}\). This allows the use
of any local Hamiltonian \(\mathcal{H}_\mathrm{loc}\) in the algorithm.