The Algorithms for Lattice Fermions package provides a general code for auxiliary-field quantum Monte Carlo simulations.

# Features

### General Hamiltonian

##### ALF simulates any model that can be written (see below) in terms of sums of:
• single-body operators,
• squares of single-body operators, and
• single-body operators coupled to an Ising field with given dynamics.

### Flexibility

##### Choosing from predefined types or defining their own, the user can specify:
• the model,
• the Bravais lattice, and
• observables (equal-time and time-displaced).

### High Performance

##### ALF makes full use of the computational resources available, boasting:
• parallelization via MPI and OpenMP,
• near-optimal single-core performance, and
• restart facilities.

### Ease of Use

##### The package capabilities are made easily accessible through:
• its Python interface, pyALF,
• extensive documentation and a short tutorial, as well as
• a large set of Predefined Structures, which substantially simplify extending the code.

##### Among other facilities, ALF also provides:
• parallel tempering,
• ground state projective QMC,
• continuous fields,
• stochastic Maximum Entropy method,
• symmetric Trotter decomposition,
• Dimer-Dimer correlations,
• Cotunneling for Kondo models, and
• Rényi Entropy.

## Support

\begin{align} \hat{\mathcal{H}} &= \hat{\mathcal{H}}_{T}+\hat{\mathcal{H}}_{V} + \hat{\mathcal{H}}_{I} + \hat{\mathcal{H}}_{0,I}, \end{align} where \begin{align} \hat{\mathcal{H}}_{T} &= \sum\limits_{k=1}^{M_T} \sum\limits_{\sigma=1}^{N_{\mathrm{col}}} \sum\limits_{s=1}^{N_{\mathrm{fl}}} \sum\limits_{x,y}^{N_{\mathrm{dim}}} \hat{c}^{\dagger}_{x \sigma s}T_{xy}^{(k s)} \hat{c}^{\phantom\dagger}_{y \sigma s} \equiv \sum\limits_{k=1}^{M_T} \hat{T}^{(k)} \label{eqn:general_ham_t}\,,\\ \hat{\mathcal{H}}_{V} &= \sum\limits_{k=1}^{M_V}U_{k} \left\{ \sum\limits_{\sigma=1}^{N_{\mathrm{col}}} \sum\limits_{s=1}^{N_{\mathrm{fl}}} \left[ \left( \sum\limits_{x,y}^{N_{\mathrm{dim}}} \hat{c}^{\dagger}_{x \sigma s}V_{xy}^{(k s)}\hat{c}^{\phantom\dagger}_{y \sigma s} \right) +\alpha_{k s} \right] \right\}^{2} \equiv \sum\limits_{k=1}^{M_V}U_{k} \left(\hat{V}^{(k)} \right)^2 \label{eqn:general_ham_v}\,,\\ \hat{\mathcal{H}}_{I} & = \sum\limits_{k=1}^{M_I} \hat{Z}_{k} \left( \sum\limits_{\sigma=1}^{N_{\mathrm{col}}} \sum\limits_{s=1}^{N_{\mathrm{fl}}} \sum\limits_{x,y}^{N_{\mathrm{dim}}} \hat{c}^{\dagger}_{x \sigma s} I_{xy}^{(k s)}\hat{c}^{\phantom\dagger}_{y \sigma s} \right) \equiv \sum\limits_{k=1}^{M_I} \hat{Z}_{k} \hat{I}^{(k)} \,.\label{eqn:general_ham_i} \end{align}