Northwestern Logo

Shiozaki Group :: BAGEL


BAGEL — Freshly leavened quantum chemistry

BAGEL = Brilliantly Advanced General Electronic-structure Library!
The source code is openly available on github under the GPL.

See also other software developed in our group.

We acknowledge the generous support from:

National Science Foundation Air Force Office of Scientific Research Department of Energy, Basic Energy Sciences Alfred P. Sloan Foundation

BAGEL as a Program Package

BAGEL has been developed to implement multireference electron correlation theories. The program has been developed since 2009 (see Publication #8,9) from scratch. The codes are written in C++ with an object oriented design, which will eventually allow us to interface them to task-based run-time architectures for massive parallelization (for peta- and exa-scale computations). It is distributed under the GPL license.
At this point, BAGEL implements following methods for energy and analytical gradients using density fitting:


with components such as

Integral routines (ERI; gradients; various 1-e integrals; F12/Yukawa),
Geometry optimization with delocalized internal and Cartesian coordinates,
Task-based multithreading (using std::thread or OpenMP),
Parallelization using asynchronous communication in MPI-2.

BAGEL Parallelization Status

parallel scaling

As of December 30th 2012, We can perform Hartree–Fock of eight benzene molecules (96 atoms, 336 electrons) in 40 seconds with cc-pVDZ (912 basis) and in 135 seconds with cc-pVTZ (2112 basis) in our in-house cluster. We assumed 11 SCF iteration in each case. Density fitting with the standard basis sets was used. No sparsity used at all.

There is still plenty of room to improve the program; we are working on it!

The status in the past can be found here.

BAGEL as a Theory Development Platform

We want to go beyond the paradigm in which theory developers/programmers and computational chemists are separated. Using our flexible BAGEL, we have worked on theory developments that target important application works.

The More the Merrier, with BAGEL

LIBINT2 (optional, recommended for gradients)
An efficient 2-electron integral library developed by Edward Valeev (Virginia Tech) under GPL. While BAGEL's native ERI code is very competitive, LIBINT2's gradient evaluation is more efficient than ours at this moment. BAGEL can be interfaced to Libint2 by configuring with


You also need to have include paths (append the following to --with-include when you configure BAGEL)

-I/usr/local/libint/2.0.1-stable/include/libint2 -I/usr/local/libint/2.0.1-stable/include

and a library path

-L/usr/local/libint/2.0.1-stable/lib -lint2

Libint2 should be compiled with

--enable-eri=1 --enable-eri3=1 --enable-eri2=1 --with-max-am=6 --with-cartgauss-ordering=bagel --enable-contracted-ints --with-incdirs=-I/opt/local/include --with-libdirs=-L/opt/local/lib --with-cxx-optflags=-O2 --with-cxx=g++

Libxc (required for DFT)
Libxc is a library of exchange-correlation functionals for density-functional theory, which is distributed under LGPL. BAGEL can be interfaced to Libxc by configuring with


You also need to have include paths (append the following to --with-include when you configure BAGEL). See their webpage for the details.