ALF  1.2 A QMC Code for fermionic models
ALF

## General information

This is the development version of ALF, the latest stable version is ALF 2.2.

The **A**lgorithms for **L**attice **F**ermions package provides a general code for the finite temperature and projective auxiliary field Quantum Monte Carlo algorithm. The code is engineered to be able simulate any model that can be written in terms of sums of single body operators, of squares of single body operators and single body operators coupled to an Ising field with given dynamics. We provide predefined types that allow the user to specify the model, the Bravais lattice as well as equal time and time displaced observables. The code supports an MPI implementation. Examples such as the Hubbard model, the SU(N) Kondo lattice model, tV models, models with long ranged interactions as well as Z2 lattice gauge theories coupled to fermions adn Z2 matter are discussed in the documentation. Slides on the auxiliary field QMC can be found here.

The Hamiltonians we can consider read:

The Hamiltonian0

where

The Hamiltonian1

Here Z denotes a scalar field (Ising or real continuous field) with predefined dynamics. If your model can be written in this form then it will be amenable to the ALF.

## Doxygen

You can find here Doxygen formatted documentation. (Work in progress)

## PREREQUISITES

• Make
• A Fortran compiler, such as gfortran or ifort
• Blas+Lapack libraries
• Python3
• MPI libraries (optional)
• For HDF5 (optional)
• C++ preprocessor (default: g++)
• Curl
• gzip development libraries
• Linux To install the relevant packages.

Debian/Ubuntu/Linux Mint:

sudo apt install make gfortran libblas-dev liblapack-dev \
python3 libopenmpi-dev g++ curl libghc-zlib-dev git

Red Hat/Fedora/CentOS:

sudo yum install make gfortran libblas-devel liblapack-devel \
python3 libopenmpi-dev g++ curl zlib git

OpenSuSE/SLES:

sudo zypper install make gcc-fortran lapack-devel \
python3 libopenmpi-devel gcc-c++ curl zlib-devel git

Arch Linux:

sudo pacman -S make gcc-fortran lapack python3 openmpi curl zlib git
• Other Unixes gfortran and the lapack implementation from netlib.org should be available for your system. Consult the documentation of your system on how to install the relevant packages. The package names from linux should give good starting points for your search.
• MacOS gfortran for MacOS can be found at https://gcc.gnu.org/wiki/GFortranBinaries#MacOS. Detailed information on how to install the package can be found at: https://gcc.gnu.org/wiki/GFortranBinariesMacOS. You will need to have Xcode as well as the Apple developer tools installed.
• Windows The easiest way to compile ALF in Windows is trough the Windows Subsystem for Linux (WSL). It allows to run Linux within Windows. You can install the WSL and follow the instructions for Linux.

## CONFIGURATION FOR COMPILATION

configure.sh It is recommended to use this script to set the environment variables. Type ./configure.sh to browse through a list of options. Notice that directory names containing spaces are not supported.

Once you have run the configuration script, change directory to Libraries, and to Analysis and run the Makefiles there. In the Prog directory then type make examples. The other programs are being updated to comply with the new version of the code.

## FILES AND DIRECTORIES

Libraries Libraries. Once that the environment is set in the file configure.sh the Libraries can be compiled with the make command.

Prog Main program and subroutines.

Analysis Analysis programs.

Scripts_and_Parameters_files Helper scripts and the Start/ directory, which contains the files required to start a run.

Documentation We have included in the file doc.pdf an extensive documentation.

testsuite An automatic test suite for various parts of the code

## pyALF

For ease of use, the pyALF repository provides a python interface to run the ALF-code

## TESTING

We have about 30 tests that test various parts of the program in the folder testsuite. As testing framework we employ CTest. From the subfolder testsuite the tests can be run as follows

• mkdir tests
• cd tests
• cmake ..
• make
• make test