Random Integrators for many-body quantum systems
The grand aim is to develop a toolbox for many-body quantum systems that can be represented by a Hamiltonian in second quantisation language. Currently supported features include:
- Full configuration interaction quantum Monte Carlo (FCIQMC), a flavour of projector quantum Monte Carlo for stochastically solving the time-independent Schrödinger equation.
- Matrix-free exact diagonalisation of quantum Hamiltonians (with external package
KrylovKit.jl
). - Sparse matrix representation of quantum Hamiltonians for exact diagonalisation with sparse linear algebra package of your choice (fastest for small systems).
- A composable and efficient type system for representing single- and multi-component Fock states of bosons, fermions, and mixtures thereof, to be used as a basis for representing Hamiltonians.
- An interface for defining many-body Hamiltonians.
- Pre-defined models include:
- Hubbard model in real space for bosons and fermions and mixtures in 1, 2, and 3 spatial dimensions.
- Hubbard and related lattice models in momentum space for bosons and fermions in one spatial dimension.
- Transcorrelated Hamiltonian for contact interactions in one dimension for fermions, as described in Jeszenski et al. arXiv:1806.11268.
- Blocking analysis following Flyvberg & Peterson JCP (1989), and automated with hypothesis testing by Jonsson PRE (2018).
- Unbiased estimators for the ground state energy by re-reweighting following Nightingale & Blöte PRB (1986) and Umrigar et al. JCP (1993).
The code supports parallelisation with MPI (harnessing MPI.jl
) as well as native Julia threading (experimental). In the future, we may add tools to solve the time-dependent Schrödinger equation and Master equations for open system time evolution.
Concept: Joachim Brand and Elke Pahl.
Contributors: Joachim Brand, Elke Pahl, Mingrui Yang, Matija Cufar, Chris Bradly.
Discussions, help, and additional contributions are acknowledged by Ali Alavi, Didier Adrien, Chris Scott (NeSI), Alexander Pletzer (NeSI).
Rimu
is a registered package and can be installed with the package manager.
Hit the ]
key at the Julia REPL to get into Pkg
mode and type
pkg> add Rimu
Alternatively, use
julia> using Pkg; Pkg.add(name="Rimu")
in order to install Rimu
from a script.
The package is now installed and can be imported with
julia> using Rimu
Note that Rimu
is under active development and breaking changes to the user interface may occur at any time. We encourage potential users of the package to contact the authors for efficient communication.
The code implements the FCIQMC algorithm described in
- "Fermion Monte Carlo without fixed nodes: A game of life, death, and annihilation in Slater determinant space", G. H. Booth, A. J. W. Thom, A. Alavi, J. Chem. Phys. 131, 054106 (2009).
- "Communications: Survival of the fittest: accelerating convergence in full configuration-interaction quantum Monte Carlo.", D. Cleland, G. H. Booth, A. Alavi, J. Chem. Phys. 132, 041103 (2010).
Scientific papers describing additional features implemented in Rimu
:
- "Improved walker population control for full configuration interaction quantum Monte Carlo", M. Yang, E. Pahl, J. Brand, J. Chem. Phys. 153, 170143 (2020); arXiv:2008.01927.
- "Stochastic differential equation approach to understanding the population control bias in full configuration interaction quantum Monte Carlo", J. Brand, M. Yang, E. Pahl, arXiv:2103.07800 (2021).
Papers discussing results obtained with Rimu
:
- "Polaron-Depleton Transition in the Yrast Excitations of a One-Dimensional Bose Gas with a Mobile Impurity", M. Yang, M. Čufar, E. Pahl, J. Brand, Condens. Matter 7, 15 (2022).
- "Magnetic impurity in a one-dimensional few-fermion system", L. Rammelmüller, D. Huber, M. Čufar, J. Brand, A. Volosniev, arXiv:2204.01606 (2022).
For more information, consult the documentation.