Open-Source Quantum Chemistry
Psi4
Use Psi4 for interaction-energy analysis with SAPT and for conceptual-DFT quantities such as Fukui functions and the dual descriptor.
- Role
- Open-source quantum chemistry
- Typical input
- Psi4 input or Python API
- Typical output
- Energies, SAPT terms, cube fields
1. Overview
Psi4 provides a text input language and a Python API. This chapter focuses on SAPT for intermolecular interactions and finite-difference density descriptors for local reactivity.
2. Energy and geometry optimization
molecule mol {
0 1
O 0.0000 0.0000 0.0000
H 0.0000 -0.7570 0.5870
H 0.0000 0.7570 0.5870
}
set basis def2-svp
energy("b3lyp-d3bj")
optimize("b3lyp-d3bj")Check SCF and optimization convergence and use a Hessian or frequency calculation to establish the stationary-point character.
3. SAPT
Symmetry-adapted perturbation theory partitions an interaction energy into physically motivated components.
Electrostatics, exchange, induction, and dispersion depend on the chosen SAPT level and grouping convention.
molecule dimer {
0 1
--
0 1
}
set { basis jun-cc-pVDZ }
energy("sapt0")Exchange is normally repulsive, while electrostatics, induction, and dispersion may be attractive or repulsive depending on convention and geometry. Compare terms only at the same SAPT level and basis.
4. Fragment definition
Use the -- separator to define monomers and assign charge and multiplicity to each fragment. Preserve the dimer geometry when computing an interaction at a fixed structure.
If monomers are relaxed separately, deformation energy is mixed into the comparison. State whether counterpoise or ghost-basis conventions are used.
5. Fukui functions
Finite differences of N, N+1, and N-1 electron densities approximate nucleophilic and electrophilic response.
Finite-difference densities may change spin state or orbital occupation between N, N+1, and N-1 systems. Check these states explicitly; frontier-orbital approximations and relaxed finite differences are not identical definitions.
6. Dual descriptor
The dual descriptor is . Interpret sign conventions explicitly and keep geometry, basis, grid, and electronic-state treatment consistent across charge states.
With the convention above, positive values are commonly associated with regions more susceptible to nucleophilic attack and negative values with electrophilic attack. Always state the convention because signs are sometimes reported oppositely.
7. Cube output
cubeprop writes orbitals, density, electrostatic potential, and related quantities to real-space grids. Record grid spacing, padding, orbital indices, and units.
set cubeprop_tasks ["DENSITY", "FRONTIER_ORBITALS", "DUAL_DESCRIPTOR"]
set cubic_grid_spacing [0.15, 0.15, 0.15]
set cubic_grid_overage [4.0, 4.0, 4.0]
energy("b3lyp")
cubeprop()8. Validation
- Verify fragment charges, multiplicities, and geometries.
- Report SAPT level, basis, frozen-core and density-fitting settings.
- Keep charge-state geometries and grids consistent for finite differences.
- State dual-descriptor sign convention.
- Check cube extents, spacing, and orbital indices.
9. References
Last reviewed: August 4, 2026. Check the linked official documentation for syntax specific to the installed software version.