# The Quantum Package

## What it is

The Quantum Package is an open-source programming environment for quantum chemistry. It has been built from the developper point of view in order to help the design of new quantum chemistry methods, especially for wave function theory (WFT).

From the user point of view, the Quantum Package proposes a stand-alone path to use optimized selected configuration interaction sCI based on the CIPSI algorithm that can efficiently reach near-full configuration interaction FCI quality for relatively large systems (see for instance [18][19][6][7][9][13][6][10][5]). To have a simple example of how to use the CIPSI program, go to the users_guide/quickstart.

The main goal is the development of selected configuration interaction sCI methods and multi-reference perturbation theory MRPT in the determinant-driven paradigm. It also contains the very basics of Kohn-Sham density functional theory KS-DFT and range-separated hybrids RSH.

The determinant-driven framework allows the programmer to include any arbitrary set of determinants in the variational space, and thus gives a complete freedom in the methodological development. The basic ingredients of RSH together with those of the WFT framework available in the Quantum Package library allows one to easily develop range-separated DFT (RSDFT) approaches (see for instance the plugins at https://gitlab.com/eginer/qp_plugins_eginer).

All the programs are developed with the IRPF90 code generator, which considerably simplifies the collaborative development, and the development of new features.

## What it is not

The Quantum Package is not a general purpose quantum chemistry program. First of all, it is a library to develop new theories and algorithms in quantum chemistry. Therefore, beside the use of the programs of the core modules, the users of the Quantum Package should develop their own programs.

The Quantum Package has been designed specifically for sCI, so all the algorithms which are programmed are not adapted to run SCF or DFT calculations on thousands of atoms. Currently, the systems targeted have less than 600 molecular orbitals. This limit is due to the memory bottleneck induced by the storring of the two-electron integrals (see `mo_two_e_integrals` and `ao_two_e_integrals`).

The Quantum Package is not a massive production code. For conventional methods such as Hartree-Fock, CISD or MP2, the users are recommended to use the existing standard production codes which are designed to make these methods run fast. Again, the role of the Quantum Package is to make life simple for the developer. Once a new method is developed and tested, the developer is encouraged to consider re-expressing it with an integral-driven formulation, and to implement the new method in open-source production codes, such as NWChem or GAMESS.

## A few examples of applications

Multiple programs were developed with the Quantum Package, such as:

- Selected Full-CI + Epstein-Nesbet PT2 (CIPSI) [18][19][6][7][9]
- Hybrid stochastic/deterministic MR-PT2 [13][6]
- Orbital optimization for open-shell systems [16][15]
- CIS, CISD, MP2
- Selected CISD
- Jeziorsky-Monkhorst MR-PT2 [11]
- Effective Hamiltonian for variational MR wave functions [14]
- Selected CAS+SD
- Selected difference-dedicated CI (DD-CI)
- Multi-Reference Coupled Cluster (MR-CCSD) [17][12]
- Shifted-Bk with CIPSI [10]
- CIPSI with range-separated DFT (plugins at https://gitlab.com/eginer/qp_plugins_eginer)
- DFT for basis set corrections [4]

All these programs can generate ground and excited states, and spin pure wave functions (eigenstates of \(\widehat{S^2}\)).