Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.
Jean-Sébastien Caux 28f3db1979 Update Discretized_LiebLin_Bethe_State (copy from abacus-dev) 1 год назад
bin Modify Makefile; add .gitignores in subfolders 6 лет назад
deprec/src/EXECS Repair all MPI-driven parallel executables 2 лет назад
dev Rework Makefile; adopt semver, starting with 1.0.0 2 лет назад
docs Improve README, move version history to separate file 6 лет назад
examples Move examples to separate folder 3 лет назад
include Fix uncommitted changes from previously 1 год назад
lib Modify Makefile; add .gitignores in subfolders 6 лет назад
obj Modify Makefile; add .gitignores in subfolders 6 лет назад
scripts Fix uncommitted changes from previously 1 год назад
src Update Discretized_LiebLin_Bethe_State (copy from abacus-dev) 1 год назад
.gitignore Add DATA folder to .gitignore 5 лет назад
ABACUS_Doxyfile Rework Doxyfile 2 лет назад
ABACUS_version_history.md Improve README, move version history to separate file 6 лет назад
Makefile Fix uncommitted changes from previously 1 год назад
README.md Improve README, move version history to separate file 6 лет назад

README.md

ABACUS

Copyright © J.-S. Caux.

ABACUS is a general set of algorithms for dealing with Bethe Ansatz-solvable systems including:

  • Lieb-Liniger (delta-)interacting bosons
  • Heisenberg spin chains
    • Isotropic antiferromagnet (XXX)
    • Anisotropic gapless antiferromagnet (XXZ, 0 < Delta < 1)
    • Anisotropic gapped antiferromagnet (XXZ_gpd, Delta > 1)
  • Interacting fermions (Jordan-Wigner’d XXZ)

The principal purposes of ABACUS are to:

  • provide structs and classes to construct Bethe eigenstates
  • provide structs and classes to solve TBA equations
  • provide functions to compute matrix elements and other ABA-obtained quantities (overlaps, …)
  • provide Hilbert space scanning functions, enabling the computation of dynamical correlation functions of basic observables
  • provide a set of executables to perform such computations, either serially from the command-line or in parallel on a cluster.

The ABACUS codebase is written in C++. The serial executables are OpenMP-aware. Parallel versions use MPICH.

Installation

From the base directory, simply run

$ make

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.

Serial executables

All executables are in the bin/ folder. Invoking them with no arguments will print out usage instructions.

Parallel executables

To compile, invoke

$ make parallel

Three executables must be run sequentially: [prefix]_par_Prepare, [prefix]_par_Run and [prefix_par_Wrapup, in which prefix is Heis_DSF, LienLin_DSF or LiebLin_DSF_General_State.

Documentation

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 docs/ABACUS_[vn]_manual.pdf.

An outdated description of ABACUS can be found in J.-S. Caux, J. Math. Phys. 50, 095214 (2009), doi:10.1063/1.3216474.

Note on versions and branches

Versions are labeled ABACUS_[vn][subvn], where 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.

Warnings

  • The ODSLF part (for one-dimensional spinless fermions) is not functional: it is based on the old Young Tableaux ids, and must be upgraded to State_Labels.
  • The Richardson part is not implemented; what exists is old and long deprecated.

Acknowledgements

(in historical order)

Antoine Klauser provided functions for computing neighbour-operator-product matrix elements in XXX: ln_Szz_ME, ln_Szm_p_Smz_ME and ln_Smm_ME.

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.

Version history

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.