|Jean-Sébastien 08c85cf590 Move (and un-repo) dev org file||4 months ago|
|bin||4 years ago|
|deprec/src/EXECS||9 months ago|
|dev||9 months ago|
|docs||4 years ago|
|examples||1 year ago|
|include||4 months ago|
|lib||4 years ago|
|obj||4 years ago|
|scripts||5 months ago|
|src||5 months ago|
|.gitignore||3 years ago|
|ABACUS_Doxyfile||5 months ago|
|ABACUS_version_history.md||4 years ago|
|Makefile||5 months ago|
|README.md||4 years ago|
Copyright © J.-S. Caux.
ABACUS is a general set of algorithms for dealing with Bethe Ansatz-solvable systems including:
The principal purposes of ABACUS are to:
The ABACUS codebase is written in C++. The serial executables are OpenMP-aware. Parallel versions use MPICH.
From the base directory, simply run
This will produce all serial executables, together with a library
ABACUS_[vn].a where vn is of the form [digit][character]. The digit marks a release number, with the optional letter marking a subversion.
All executables are in the
bin/ folder. Invoking them with no arguments will print out usage instructions.
To compile, invoke
$ make parallel
Three executables must be run sequentially:
[prefix_par_Wrapup, in which
Documentation for the ABACUS codebase is automatically generated using Doxygen. To generate the documentation, invoke
make docs (you will need to have Doxygen installed on your system). The configuration file is
ABACUS_Doxygen. The HTML version is anchored at
docs/html/index.html. The PDF version is located at
An outdated description of ABACUS can be found in J.-S. Caux, J. Math. Phys. 50, 095214 (2009), doi:10.1063/1.3216474.
Versions are labeled
vn is a version number and
subvn is a letter subversion label. Branch
master sits on the latest version/subversion available.
In the repo, development takes place in branches labeled
dev_from[vn][subvn] where vn marks the version from which development takes place. Sub-branches for specific features are labeled
dev_from[vn]_[feature], where feature is a short descriptor. Completed and accepted features are merged into the dev branch, before this is ultimately merged into master and released as a new [sub]version.
(in historical order)
Antoine Klauser provided functions for computing neighbour-operator-product matrix elements in XXX:
Miłosz Panfil contributed to code to help in the calculation of finite-temperature correlations of Lieb-Liniger.
Jacopo De Nardis contributed code for the
ln_g2_ME function for Lieb-Liniger.
Teun Zwart has given much useful advice concerning C++ code organization.
Development of ABACUS was started by J.-S. Caux around 2004 and has known an embarrassingly large number of versions. Some notes on the more recent versions can be found in file ABACUS_version_history.md in this directory.