Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time


Semistochastic Heat Bath Configuration Interaction (SHCI) method. A very fast selected configuration interaction plus perturbation theory method for obtaining almost exact Full Configuration Interaction (FCI) energies. Such methods have been used for more than 50 years, but SHCI has innovations that we believe make it faster than all its competitors. Arrow enables massively parallel computations using the SHCI method with MPI+OpenMP hybrid parallelization.

Build Status

How to Run

Instructions for installing and running Arrow are documented in the wiki.

How to Contribute

Arrow is a research program rather than a fully tested catch-all software package. The efficiency and correctness of edge cases, or input values that differ greatly from the default or published values are not guaranteed. We welcome help with extending the capabilities of Arrow. If interested, please contact Cyrus Umrigar, or a member of his research group.

History and Authorship

Arrow implements algorithms developed in the Umrigar group at Cornell, with considerable input from Sandeep Sharma at Boulder, CO. Arrow was conceived and implemented by Junhao Li, and greatly extended by Yuan Yao and Tyler Anderson. Written in C++, it contains improved versions of SHCI algorithms first developed by Adam Holmes and extended by Matt Otten, implemented in the FORTRAN sqmc program. sqmc was originally developed by Frank Petruzielo, Hitesh Changlani and Adam Holmes to make major improvements to the Full Configuration Interaction Quantum Monte Carlo (FCIQMC) method, so it has both SHCI and FCIQMC capabilities. All authors, aside from Sharma, were at Cornell when they contributed.


Any papers that use Arrow should cite the following 3 papers:

"Fast semistochastic heat-bath configuration interaction", Junhao Li, Matthew Otten, Adam A. Holmes, Sandeep Sharma, and C. J. Umrigar, J. Chem. Phys., 149, 214110 (2018).

"Heat-bath configuration interaction: An efficient selected configuration interaction algorithm inspired by heat-bath sampling", Adam A. Holmes, Norm M. Tubman, and C. J. Umrigar, J. Chem. Theory Comput. 12, 3674 (2016).

"Semistochastic heat-bath configuration interaction method: selected configuration interaction with semistochastic perturbation theory", Sandeep Sharma, Adam A. Holmes, Guillaume Jeanmairet, Ali Alavi, and C. J. Umrigar, J. Chem. Theory Comput. 13, 1595 (2017).

For the orbital optimization solver in Arrow, please cite:

"Orbital Optimization in Selected Configuration Interaction Methods", Yuan Yao and C. J. Umrigar, J. Chem. Theory Comput. 2021, 17, 4183 (2021).

In bibfile format:

Author = {Junhao Li and  Matthew Otten and Adam A. Holmes and Sandeep Sharma and C. J. Umrigar},
Title = {Fast Semistochastic Heat-Bath Configuration Interaction},
Journal = {J. Chem. Phys.},
Year = {2018},
Volume = {148},
Pages = {214110}

Author = {Sandeep Sharma and Adam A. Holmes and Guillaume Jeanmairet and Ali Alavi and C. J. Umrigar},
Title = {Semistochastic Heat-Bath Configuration Interaction Method: Selected
   Configuration Interaction with Semistochastic Perturbation Theory},
Journal = {J. Chem. Theory Comput.},
Year = {2017},
Volume = {13},
Pages = {1595-1604},
DOI = {10.1021/acs.jctc.6b01028},

Author = {Adam A. Holmes and Norm M. Tubman and C. J. Umrigar},
Title = {Heat-bath Configuration Interaction: An efficient selected CI algorithm inspired by heat-bath sampling},
Journal = {J. Chem. Theory Comput.},
Volume = {12},
Pages = {3674-3680},
Year = {2016}}

Author={Yuan Yao and C. J. Umrigar},
Title={Orbital Optimization in Selected Conguration Interaction Methods},
Journal={J. Chem. Theory Comput.},
Volume = {17},
Pages = {4183-4194},


Arrow - Fast Semistochastic Heat Bath Configuration Interaction Solver (SHCI)







No packages published