Code
Here is some of the code that I have developed for my research. Not uploaded to the internet yet but stay tuned!
Lanczos [coming soon]
C++ code to diagonalize Hermitian matrices using the Lanczos algorithm without re-orthogonalization.
Features
- Lightweight template header-only library built on top of Eigen.
- Allows user-defined matrix-vector multiplication.
- Supports banded Lanczos recursion.
Noodle [coming soon]
(Noo)bie (D)iagonalization: (L)anczos and (E)xactA simple and easy to implement C++ header-only framework for constructing quantum many-body Hamiltonians. Diagonalizes the Hamiltonian matrix either exactly with Eigen or approximately with Lanczos.
Features
- Lightweight template header-only library built on top of Eigen.
- Can treat both fermions and bosons.
- Compute: excitation spectrums and static & dynamic correlation functions (e.g. specific heat, Green's functions, dynamic structure factor, etc.).
So far Noodle has been used for
- Fractional quantum Hall effect
- Models: Spinless fermions and bosons on the surface of a sphere with a magnetic monopole at the center and interacting through long range (Coulomb) and short range (Laughlin) interactions. Momentum space.
- Calculation: Excitation spectrums and thermodynamic observables e.g. specific heat, entropy, free-energy.
- Fermi-Hubbard models
- Models: 1D, 2D, square lattice, kagome lattice, two-orbital, and checkerboard lattice with complex hoppings. Real space.
- Calculation: Green's function and spin susceptibility.