Skip to content

Basis Sets

Everything generated, nothing tabulated

A Hamiltonian starts on a real-space grid, not in a lookup table. Localized orbitals, pseudopotentials and the integrals between them are all built at run time by Carcará itself — the algorithms that consume the resulting Hamiltonian are on the Algorithms page.

Localized basis sets, four families

FAO orbitals are closed-form and analytic; NAO, GTO and Pople bases are fit or solved numerically — every one generated at run time, none looked up in a tabulated library.

  • FAO — hydrogenoid orbitals, analytic and exact
  • NAO — numerical, confined orbitals in the SIESTA/Sankey style, with SZ/DZ/DZP/TZP/TZ2P/QZP multi-zeta and polarized variants
  • GTO — minimal STO-nG, built by least-squares fitting to the analytic orbital
  • Pople split-valence — 6-31G and 6-31G(d), for direct comparison with quantum-chemistry references

Pseudopotentials generated, not downloaded

Every element with Z < 90 ships a norm-conserving Troullier–Martins pseudopotential with Kleinman–Bylander projectors — generated from scratch by Carcará's own atomic LDA solver, not fetched from an external pseudopotential library.

  • Removes the core electrons a full-Z simulation cannot afford on a NISQ-era qubit budget
  • Kleinman–Bylander separable projectors, the same non-local form production DFT codes use
  • Regenerable on demand for any element under Z = 90, not a frozen, versioned download

A basis-agnostic, C-accelerated integral engine

One- and two-body integrals are evaluated on real-space grids — cubic, anisotropic or non-orthogonal — through a C/OpenMP backend that never sees an orbital's analytic form, only its sampled values, with an automatic NumPy fallback.

  • The two-electron Coulomb integral is solved via FFT, O(N log N), not the naive O(N²) real-space sum
  • libcarcara_integrals compiles once (CMake ≥ 3.15) and is picked up automatically by _backend.py
  • The same BasisFunction.evaluate(x, y, z) contract works for every basis family above

Keep reading

VQE, ADAPT-VQE, excited states, VASQE and periodic systems — four solvers sharing one driver.

Cross-backend validation to 1.3×10⁻⁷ Ha, real QPU execution through Amazon Braket, and what still doesn't work.

Try it on your own structure

Install it, or read the manual first.