TBTK

TBTK is a C++ library for modeling and solving second quantized Hamiltonians. A flexible indexing scheme allows for general models to be setup with little effort, and a variety of solution methods are implemented in natively available solvers. The aim is to provide flexible and well thought through data structures that combines the efficiency of C++ with high level abstraction that allows developers to focus their attention on physics rather than numerics. Thereby facilitating both the investigation of specific physical question as well as enabling rapid development of completely new methods.
To get started, see the installation instructions, the manual, and the tutorials.
The code is available at https://github.com/dafer45/TBTK.
A magnetic impurity on top of a square lattice. Image generated using the built in RayTracer (currently in experimental development stage).
Consider a magnetic impurity on top of a twodimensional substrate of size 51x51 described by
where
\begin{eqnarray*} H_{S} &=& U_S\sum_{\mathbf{i}\sigma}c_{\mathbf{i}\sigma}^{\dagger}c_{\mathbf{i}\sigma}  t\sum_{\langle\mathbf{i}\mathbf{j}\rangle\sigma}c_{\mathbf{i}\sigma}^{\dagger}c_{\mathbf{j}\sigma},\\ H_{Imp} &=& (U_{Imp}  J)d_{\uparrow}^{\dagger}d_{\uparrow} + (U_{Imp} + J)d_{\downarrow}^{\dagger}d_{\downarrow},\\ H_{Int} &=& \delta\sum_{\sigma}c_{(25,25)\sigma}^{\dagger}d_{\sigma} + H.c. \end{eqnarray*}
Here \(\mathbf{i}\) is a twodimensional index, \(\langle\mathbf{i}\mathbf{j}\rangle\) indicates summation over nearest neighbors, \(\sigma\) is a spin index, and \(c_{\mathbf{i}}\) and \(d_{\sigma}\) are operators on the substrate and impurity, respectively. The parameters \(U_S\) and \(U_{Imp}\) are onsite energies on the substrate and impurity, respectively, while \(t\) is a nearest neighbor hopping amplitude, \(J\) is a Zeeman term, and \(\delta\) is the coupling strength between the substrate and impurity.
Question: What is the spinpolarized LDOS in the substrate as a function of \(U_S, U_{Imp}, t, J\), and \(\delta\)?