Overview of the code
2, Eigen (optional)
mathematical operations and functions
direct interface between Python objects and C/C++ code, XML data read/write
XML read/write of arbitrary C/C++ and Python objects. Functionality of constructing XML structures from Python
handling simulation unit cell partitioning: creation of Verlet or neighbor list, PBC operations
collection of interatomic interaction potentials, model potentials, etc.
general functions for computing properties such as Fermi energy, electronic energy, density matrix,
creation of electronic excitation objects, etc. Note, these functions are general enough so they rely only on the simplest data types
low-level operations for quantum-chemical calculations: orbitals objects, basis creation, molecular integrals and their derivatives
1, 2, 4, 5, 6, 7
model and atomistic (quantum and classical MM) Hamiltonians – both types are unified to have a common interface
integrators for classical and quantum propagation, also includes thermostats and barostats, as well as ensembles of quantum-classical systems.
data types to represent chemical objects – atoms, fragments, molecules and to perform analysis and manipulations on them
1, 9, 10
set of functions to convert between the data types defined in different modules (e.g. between dynamical classes and chemobject classes).
1, 8, 9, 10
Higher-level protocol for some complex simulations, but with all the details hidden from users. This is where the new methodologies
tested in Python scripts can be collected before they are refactored across the entire library.