How gqcg/gqcp works
GQCP is a C++ domain-specific library for developing electronic-structure methods in spinor bases, with Python bindings. A typical calculation represents a molecule and basis, obtains one- and two-electron integrals, forms operators and applies a selected quantum-chemical method; property and response modules support downstream analysis. The tree also shows distinct method families, orbital optimization and configuration-interaction basis machinery. The README establishes the product scope, while sampled source confirms integral-engine construction and operator storage; some method-level wiring is inferred from the module organization.
Main entry points: SQHamiltonian.hpp Quantized operators · RHFSCFSolver.hpp Hartree–Fock · CCSDSolver.hpp Correlated methods · NOCI.hpp CI and NOCI
Components 20
Molecular model
- Molecule
gqcp/include/Molecule/Molecule.hpp
Basis and integrals
- Gaussian basis
gqcp/include/Basis/ScalarBasis/GTOBasisSet.hpp - Spinor basis
gqcp/include/Basis/SpinorBasis/GSpinorBasis.hpp - Integral factory
gqcp/include/Basis/Integrals/IntegralEngine.hpp - Primitive engines
gqcp/include/Basis/Integrals/Primitive/PrimitiveCoulombRepulsionIntegralEngine.hpp - Libint / Libcint
gqcp/include/Basis/Integrals/Interfaces/LibcintOneElectronIntegralEngine.hpp - One-electron integrals
gqcp/include/Basis/Integrals/OneElectronIntegralEngine.hpp - Two-electron integrals
gqcp/include/Basis/Integrals/TwoElectronIntegralEngine.hpp
Operators and states
- Quantized operators
gqcp/include/Operator/SecondQuantized/SQHamiltonian.hpp - Operator storage
gqcp/include/Operator/SecondQuantized/SQOperatorStorage.hpp - Density matrices
gqcp/include/DensityMatrix/G1DM.hpp - ONV bases
gqcp/include/ONVBasis/SpinResolvedONVBasis.hpp
Electronic structure
- Hartree–Fock
gqcp/include/QCMethod/HF/RHF/RHFSCFSolver.hpp - Correlated methods
gqcp/include/QCMethod/CC/CCSDSolver.hpp - CI and NOCI
gqcp/include/QCMethod/NOCI/NOCI.hpp - Geminal methods
gqcp/include/QCMethod/Geminals/AP1roG.hpp - Orbital optimization
gqcp/include/QCMethod/OrbitalOptimization/NewtonOrbitalOptimizer.hpp
Analysis and bindings
- Properties and response
gqcp/include/Processing/Properties/properties.hpp - Python bindings
gqcpy/src/Basis/Integrals/FunctionalOneElectronPrimitiveIntegralEngine_bindings.cpp
Other components
- Research user
Connections 32
- Research user → Molecule: defines system
- Research user → Gaussian basis: chooses basis
- Molecule → Gaussian basis: centers basis
- Gaussian basis → Spinor basis: supports orbitals
- Research user → Integral factory: requests integrals
- Integral factory → Primitive engines: creates engines
- Integral factory → Libint / Libcint: creates backend
- Primitive engines → One-electron integrals: evaluates integrals
- Primitive engines → Two-electron integrals: evaluates integrals
- Libint / Libcint → One-electron integrals: evaluates integrals
- Libint / Libcint → Two-electron integrals: evaluates integrals
- One-electron integrals → Quantized operators: supplies matrix elements
- Two-electron integrals → Quantized operators: supplies matrix elements
- Quantized operators → Operator storage: stores parameters
- Research user → Hartree–Fock: selects method
- Hartree–Fock → Quantized operators: uses Hamiltonian
- Hartree–Fock → Density matrices: forms density
- Research user → Correlated methods: selects method
- Correlated methods → Quantized operators: uses Hamiltonian
- Correlated methods → Density matrices: uses densities
- Research user → CI and NOCI: selects method
- CI and NOCI → ONV bases: uses configurations
- CI and NOCI → Quantized operators: uses Hamiltonian
- Research user → Geminal methods: selects method
- Geminal methods → Quantized operators: uses Hamiltonian
- Research user → Orbital optimization: requests optimization
- Orbital optimization → Spinor basis: rotates orbitals
- Hartree–Fock → Properties and response: enables analysis
- Correlated methods → Properties and response: enables analysis
- CI and NOCI → Properties and response: enables analysis
- Geminal methods → Properties and response: enables analysis
- Research user → Python bindings: uses bindings