Skip to content

Commit

Permalink
Prepare Rimu for registration (#142)
Browse files Browse the repository at this point in the history
* Bump version, add TagBot

* update README

* improve formatting

Co-authored-by: Joachim Brand <j.brand@massey.ac.nz>
  • Loading branch information
mtsch and joachimbrand authored Feb 18, 2022
1 parent 75bf05e commit 979a490
Show file tree
Hide file tree
Showing 3 changed files with 41 additions and 14 deletions.
15 changes: 15 additions & 0 deletions .github/workflows/TagBot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
name: TagBot
on:
issue_comment:
types:
- created
workflow_dispatch:
jobs:
TagBot:
if: github.event_name == 'workflow_dispatch' || github.actor == 'JuliaTagBot'
runs-on: ubuntu-latest
steps:
- uses: JuliaRegistries/TagBot@v1
with:
token: ${{ secrets.GITHUB_TOKEN }}
ssh: ${{ secrets.DOCUMENTER_KEY }}
2 changes: 1 addition & 1 deletion Project.toml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
name = "Rimu"
uuid = "c53c40cc-bd84-11e9-2cf4-a9fde2b9386e"
authors = ["Joachim Brand <j.brand@massey.ac.nz>"]
version = "0.6.1-dev"
version = "0.6.1"

[deps]
Arrow = "69666777-d1a9-59fb-9406-91d4454c9d45"
Expand Down
38 changes: 25 additions & 13 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,14 +5,26 @@

*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 there are tools to find the ground state with a Lanczos algorithm
(using [`KrylovKit.jl`](https://github.com/Jutho/KrylovKit.jl) for small Hilbert
spaces), or with projector quantum Monte Carlo in the flavour of full
configuration interaction quantum Monte Carlo (FCIQMC, see [References](@ref)).
We will add tools to solve the time-dependent Schrödinger equation and Master
equations for open system time evolution.
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:
### Interacting with quantum many-body models
* **Full configuration interaction quantum Monte Carlo (FCIQMC)**, a flavour of projector quantum Monte Carlo for stochastically solving the time-independent Schrödinger equation. See [References](@ref).
* **Matrix-free exact diagonalisation** of quantum Hamiltonians (with external package [`KrylovKit.jl`](https://github.com/Jutho/KrylovKit.jl)).
* **Sparse matrix representation** of quantum Hamiltonians for exact diagonalisation with sparse linear algebra package of your choice (fastest for small systems).

### Representing quantum many-body models
* A composable and efficient type system for representing single- and multi-component **Fock states** of bosons, fermions, and mixtures thereof.
* 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](http://arxiv.org/abs/1806.11268).

### Statistical analysis of Monte Carlo data
* **Blocking analysis** following Flyvberg and Peterson [JCP (1989)](http://aip.scitation.org/doi/10.1063/1.457480), and automated with the M test of Jonsson
[PRE (2018)](https://link.aps.org/doi/10.1103/PhysRevE.98.043304).
* **Unbiased estimators** for the ground state energy by re-reweighting following Nightingale & Blöte [PRB (1986)](https://link.aps.org/doi/10.1103/PhysRevB.33.659) and Umrigar *et al.* [JCP (1993)](http://aip.scitation.org/doi/10.1063/1.465195).

The code supports parallelisation with MPI (harnessing [`MPI.jl`](https://github.com/JuliaParallel/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.

Expand All @@ -23,7 +35,7 @@ Didier Adrien, Chris Scott (NeSI), Alexander Pletzer (NeSI).

### Installing Rimu

`Rimu` can be installed with the package manager directly from the github
`Rimu` can be installed with the package manager directly from the GitHub
repository. Hit the `]` key at the Julia REPL to get into `Pkg` mode and
type
```julia-repl
Expand All @@ -41,17 +53,17 @@ The package is now installed and can be imported with
```julia-repl
julia> using Rimu
```
`Rimu` offers a number of tools for representing Hamiltonians and
state vectors / wave functions
as well as algorithms for finding the ground state.

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.


### References
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)](https://doi.org/10.1063/1.3193710).

Scientific papers using the `Rimu` code:
Scientific papers describing additional features implemented in the `Rimu` code:
- "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](http://arxiv.org/abs/2103.07800) (2021).
- "Improved walker population control for full configuration interaction quantum Monte Carlo", M. Yang, E. Pahl, J. Brand, [*J. Chem. Phys.* **153**, 170143 (2020)](https://doi.org/10.1063/5.0023088); DOI: 10.1063/5.0023088; [arXiv:2008.01927](https://arxiv.org/abs/2008.01927).
- "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)](https://doi.org/10.3390/condmat7010015); DOI: 10.3390/condmat7010015.

For more information, consult the [documentation](https://joachimbrand.github.io/Rimu.jl/dev/).

2 comments on commit 979a490

@joachimbrand
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@JuliaRegistrator
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Registration pull request created: JuliaRegistries/General/54879

After the above pull request is merged, it is recommended that a tag is created on this repository for the registered package version.

This will be done automatically if the Julia TagBot GitHub Action is installed, or can be done manually through the github interface, or via:

git tag -a v0.6.1 -m "<description of version>" 979a490346547d7b9caa708197f63bf40c190e30
git push origin v0.6.1

Also, note the warning: This looks like a new registration that registers version 0.6.1.
Ideally, you should register an initial release with 0.0.1, 0.1.0 or 1.0.0 version numbers
This can be safely ignored. However, if you want to fix this you can do so. Call register() again after making the fix. This will update the Pull request.

Please sign in to comment.