Chemist provides chemistry-related data structures. This includes data structures for chemistry concepts including atoms, molecules, and atomic-orbital basis sets.
Chemist was designed as part of the NWChemEx stack, which means the data structures in Chemist are designed to be both user-friendly and performant. Despite being part of the NWChemEx stack, Chemist is a fairly modular library and can easily be leveraged by other electronic structure packages as well. At present the main features of Chemist are:
- Support of both structure-of-array and array-of-structures usage.
- Ability to avoid copying via "views".
- The ability to independently control how the nuclei, atoms, molecules, and overall system are modeled.
- Efficient C++ classes with Python bindings.
Chemist ultimately uses CMake for configuring and building. This means that installation is usually achieved via a variation on:
git clone https://github.com/NWChemEx/Chemist
cd Chemist
cmake -H. -Bbuild -D...
cmake --build build --target install
More detailed install instructions can be found here.
This research was supported by the Exascale Computing Project (17-SC-20-SC), a collaborative effort of the U.S. Department of Energy Office of Science and the National Nuclear Security Administration.