1. HORTON Overview¶
1.1. Our Manifesto¶
HORTON is a Helpful Open-source Research TOol for N-fermion systems, written primarily in the Python programming language. (HORTON is named after the helpful pachyderm, not the Canadian caffeine supply store.) The ultimate goal of HORTON is to provide a platform for testing new ideas on the quantum many-body problem at a reasonable computational cost. Although HORTON is primarily designed to be a quantum-chemistry program, it can perform computations involving model Hamiltonians, and could be extended for computations in nuclear physics.
What HORTON is (or is hoped to be):
- HORTON is designed to be a helpful framework for rapidly prototyping methods and testing ideas, together with utilities that ensure the resulting implementation is not too inefficient. HORTON is not designed to achieve bleeding-edge performance: readability, extensibility, and modifiability are often preferred over computational efficiency and code compactness when trade-offs are essential.
- HORTON is, and always will be, open source, distributed under the GNU General Public License. The HORTON development team always welcomes new contributions.
- HORTON is a research tool for both its developers and users. As a result, the available functionality is naturally biased towards the interests of its developers. The current focus of HORTON is on low-cost ab initio electronic structure theory methods and post-processing tools for interpreting electronic structure calculations. Additional functionality can be provided by other developers, and through interfaces to various programs. If you are interested in joining the HORTON development team, please contact us through the the HORTON mailing list.
- HORTON can used in three ways: as part of a larger program, as a stand-alone problem, outside other programs. Retaining this flexibility is a fundamental design principle of HORTON. Horton can be run as a stand-alone program using either input files or Python scripts. However, when HORTON’s functionality is limited or its computational requirements are too large, HORTON can be used in scripts for managing and post-processing calculations from other Schrödinger solver software. HORTON can also be used, to provide specialized functionality to a larger program (e.g., to update the atomic charges in a molecular dynamics simulation). To facilitate the use of HORTON within other programs, we guarantee no major API changes for at least twelve months after each major release.
1.2. Main Features¶
- Integrating the LibXC [marques2012] and LibInt2 [valeev2014] libraries.
- Supporting many Data file formats (input and output) to exchange data with other codes.
- Adapting a modular structure to easily combine HORTON with custom developments.
Electronic Structure Methods
Hartree-Fock and DFT methods:
- Restricted and unrestricted orbitals
- LDA, GGA and Hybrid GGA LibXC Functionals
- Various SCF algorithms
Geminals-based methods. Specifically, Antisymmetry Product of 1 reference-orbital Geminals (AP1roG)
- Several variants of the Hirshfeld atoms-in-molecules partitioning scheme
- Electrostatic potential fitting of atomic charges
- Orbital entanglement analysis
- Orbital localization