OpenQuantum
OpenQuantum is an ab initio molecular orbital (MO) calculation program written in Rust. It performs Hartree–Fock, Kohn–Sham DFT, and post–Hartree–Fock calculations within the Linear Combination of Atomic Orbitals (LCAO) framework. Supports RHF, UHF, ROHF, and RKS/UKS for closed- and open-shell molecules; MP2 and CCSD(T) correlation energies; density functional theory with GGA, meta-GGA, hybrid, and range-separated hybrid functionals; implicit solvation (PCM-family, ddCOSMO/ddPCM, SMD) with analytical gradients and Hessians; geometry optimization (BFGS, Berny RFO, primitive/DLC/TRIC internal coordinates) with analytic gradients; IRC and NEB pathways; harmonic frequency analysis with analytical Hessians and thermochemistry; and effective core potentials (ECPs).
Note: The project is under active development and not yet ready for production use.
Feature Highlights
| Category | Features |
|---|---|
| Molecular Input | XYZ Cartesian geometry in Angstrom or Bohr units |
| Basis Sets | STO-3G, 3-21G, 6-31G, 6-31G*, 6-31G**, 6-31+G*, 6-311G, cc-pVDZ, cc-pVTZ, cc-pVQZ, def2-SVP, def2-TZVP, def2-TZVPP, def2-QZVP, LANL2DZ, and 520+ more built directly into the binary — spanning Pople, Dunning cc-pVXZ, Karlsruhe def2, ANO, Jensen PCseg, relativistic (DKH/ZORA/x2c), universal (UGBS/HGBS), SARC, Sapporo, ECP libraries, and specialized sets — with support for external JSON, GBS, and Orca BAS formats |
| One-Electron Integrals | Overlap (S), kinetic energy (T), and nuclear attraction (V) via Obara–Saika recurrences |
| Two-Electron Integrals | McMurchie–Davidson algorithm with 8-fold permutational symmetry; SP analytical fast paths for S/P shells (up to 10× speedup); Rys quadrature for D/F+ shells; direct SCF mode for large systems with symmetry-accelerated cache lookup; engine selection via the INT section (Eri auto/md/sp/rys) — applies uniformly to in-core ERI build, direct SCF, analytical gradients/Hessians, and semi-analytical (FD) Hessians |
| SCF Methods | RHF, UHF, and ROHF with DIIS, level shifting, damping, Fermi broadening, multiple initial guesses (core Hamiltonian, Hückel, SAD), and Quadratic Convergence SCF (QC-SCF) with Newton–Raphson orbital optimization |
| Post-HF | MP2 and CCSD(T) correlation energies |
| Analytical Gradients | RHF and UHF analytic nuclear gradients with symmetry-accelerated ERI derivatives (skips symmetry-equivalent shell quartets); used by BFGS optimizer |
| Analytical Hessians | Fully analytical RHF and UHF Hessians including CPHF response, occupied-occupied reorthonormalization, and analytic d²ERI integrals with symmetry acceleration (skips symmetry-equivalent quartets); semi-analytical (FD) path also propagates the selected ERI engine to all displaced SCF evaluations |
| Geometry Optimization | BFGS optimizer with analytic nuclear gradients; Berny RFO algorithm with trust-radius step control via the OPT section (Algorithm berny); backend-specific controls (dihedral, superweakdih, energynoise) can be invoked by setting Algorithm rberny (or RBerny in the task: line); Primitive, DLC, and TRIC internal-coordinate back-ends with topology-inferred primitive sets (bonds, angles, dihedrals, out-of-plane, linear-angle supplementary) and IC back-transform; IRC path; NEB pathway optimization with Henkelman energy-weighted tangent and climbing-image CI-NEB; Transition-state search with P-RFO step, Bofill Hessian update, initial TS Hessian initialization, periodic eigenvalue correction, and TS-specific trust radius (0.01 Å); saddle-point-aware IC optimizer with TS-BFGS Hessian update, P-RFO or Minimum Mode Following (MMF) step, sigma-based trust-radius schedule, and Davidson partial eigensolver (Algorithm sella or the Sella task token); GDIIS/GEDIIS geometry-space DIIS extrapolation in IC optimizers (Diis true); Bofill Hessian update for transition-state optimization (Update bofill) |
| Frequency Analysis | Harmonic vibrational frequencies via semi-analytical (finite-difference of gradients) or fully analytical Hessian; IR intensities, thermochemistry |
| Thermochemistry | Zero-point energy, thermal corrections (U, H, G), entropy (translational + rotational + vibrational) via RRHO model with symmetry number |
| ECP Support | Effective core potentials (LANL2DZ, Stuttgart, etc.) |
| DFT Methods | Restricted (RKS) and unrestricted (UKS) Kohn–Sham DFT across four rungs of Jacob's ladder — GGA (BP86, PBE), meta-GGA (TPSS, M06-L), hybrid GGA (B3LYP, PBE0), hybrid meta-GGA (M06-2X), and range-separated hybrid (ωB97X-D); Becke-style atom-centered quadrature with Mura–Knowles radial and Lebedev–Laikov angular grids (six built-in preset levels: Coarse through SuperFine); empirical dispersion corrections (D2, D3 zero-damping, D4 charge-scaled) |
| XC Integration | Shell-pair screening (product bound < 10⁻¹⁶ threshold); forward-mode autodiff functional derivatives (7-variable dual numbers) for exact analytic vρ, vσ, vτ; kinetic-energy density support for meta-GGAs; Stratmann–Scuseria compact cell function (f(μ), 3003/2048 normalization, |
| DFT SCF Coupling | Range-separated hybrids with short/long-range exchange splitting via error function; solvent-coupled SCF (RKS/UKS with reaction field); full re-use of SCF infrastructure (DIIS, damping, level shifting, checkpointing) |
| Implicit Solvation | Seven electrostatic models across three engine families — PCM-family (C-PCM, COSMO, IEF-PCM, SS(V)PE) with SWIG/ISWIG cavity discretization; domain-decomposition (ddCOSMO, ddPCM) with spherical-harmonic expansion; SMD with IEF-PCM electrostatics and CDS non-electrostatic term; 179-solvent SMD parameter database |
| Solvent Analytical Gradients | Full analytic PCM gradient (three contributions: grad_nuc, grad_solver, grad_qv) via adjoint-Lagrangian formulation for C-PCM/COSMO/IEF-PCM/SS(V)PE; ddCOSMO/ddPCM analytic gradient with regularized l=0 block |
| Solvent Analytical Hessians | Full analytic PCM Hessian (hess_nuc + hess_solver + hess_qv) including CPHF solvent response (AXPCM kernel) for C-PCM/COSMO/IEF-PCM/SS(V)PE; finite-difference fallback for ddCOSMO/ddPCM |
| Symmetry | Point group detection, character tables, irrep assignment; symmetry acceleration for all ERI-heavy computations — energy (in-core + direct SCF), analytical gradient, and analytical Hessian (matching GRAD2E SymShl — skips symmetry-equivalent shell quartets before expensive integral evaluation) |
| CPHF Solver | Coupled-perturbed Hartree–Fock equations for response properties; RHF and coupled 2×2 UHF spins |
| Analysis | Mulliken population analysis, orbital energies, spin contamination ⟨S²⟩, dipole moments, EFG |
| Checkpointing | Save and restart SCF from binary checkpoint files; checkpoint and other temporary files are written to a configurable scratch directory (see Environment Variables) |
Quick Navigation
- New to OpenQuantum? Start with Installation then Quick Start.
- Ready to run? See the Input File Format and Keyword Reference.
- Want to understand the algorithms? See Theoretical Background and Density Functional Theory.
- Running with solvent? See Implicit Solvent Models.
- Looking for the full API? See Developer Documentation.
Citation
If you use OpenQuantum in your research, please cite this preprint:
Pham, Le Nhan. OpenQuantum: A High-Performance Rust Implementation for Ab Initio Molecular Orbital Calculations. 2026.
Installation
Building from Source
Source code is not open yet. You can download binary files from https://github.com/lenhanpham/OpenQuantum-binary
# Clone the repository
git clone https://github.com/lenhanpham/OpenQuantum
cd OpenQuantum
# Build in release mode
cargo build --release
# Run all tests
cargo test
Note: The workspace contains multiple crates. The binary is named
oquantum. When running the program, use-p oquantumto specify the package:cargo run --release -p oquantum -- <input_file>
Requirements
- Rust 1.70+ (stable toolchain)
- Cargo (comes with Rust)
- Git (for cloning the repository)
Platform Support
OpenQuantum builds and runs on:
- Linux (x86_64, aarch64)
- macOS (Intel, Apple Silicon)
- Windows (x86_64)
Verifying the Installation
After building, test with a minimal input:
cat > test.inp << 'EOF'
task: RHF STO-3G
MOLECULE
Charge 0
Multiplicity 1
Units Angstrom
END
GEOMETRY
H 0.0 0.0 0.0
H 0.0 0.0 1.4
END
EOF
cargo run --release -p oquantum -- test.inp
You should see an RHF energy calculation output for H₂ with STO-3G basis.
Quick Start
OpenQuantum is a command-line program driven by plain text input files. The section-based format is the only supported format:
- Section-based: a
task:header followed byMOLECULE,GEOMETRY,SCF,INT,DFT,SOLVATION,OPT,FREQ,MP2,CC,BASIS,SYMMETRYblocks terminated byEND.
cargo run --release -p oquantum -- water_rhf.inp
Note: The binary is named
oquantum. The-p oquantumis required because the workspace contains multiple crates.
Minimal RHF Energy on Water
task: RHF STO-3G
MOLECULE
Charge 0
Multiplicity 1
Units Angstrom
END
GEOMETRY
O 0.000000 0.000000 0.117369
H 0.756950 0.000000 -0.469476
H -0.756950 0.000000 -0.469476
END
Save this as water_rhf.inp and run:
cargo run --release -p oquantum -- water_rhf.inp
Anatomy of an Input File
Every input file consists of:
task:line — Required. Sets the run type, method, and basis set.task: RHF STO-3GMOLECULEsection — Optional. Charge, multiplicity, coordinate units.GEOMETRYsection — Required. Atom list with coordinates.- Optional sections —
BASIS,SCF,INT,DFT,SOLVATION,OPT,FREQ,MP2,CC,SYMMETRY— only include when you need non-default settings.
Section names are case-insensitive. Each section ends with END (or end) on its
own line. Lines inside a section are key value pairs (whitespace-separated,
comment lines start with # or !, blank lines are ignored).
Next Steps
- Learn the Input Format in detail
- Browse Examples for common calculations
- Understand the Theoretical Background behind the methods
Environment Variables
| Variable | Description |
|---|---|
OPENQUANTUM_SCRATCH | Directory for temporary files. Defaults to the OS temporary directory (/tmp on Linux/macOS, %TEMP% on Windows) when not set. |
OPENQUANTUM_BASIS_PATH | Override the search path for external basis-set files (GBS, BAS, or JSON format). |
Basis Search Path
When resolving an external or custom basis set (not built into the binary), OpenQuantum searches directories in this order:
- Directory from the
OPENQUANTUM_BASIS_PATHenvironment variable basis/subdirectory next to the running executablebasis/subdirectory in the current working directory- Source-tree fallback:
crates/basis/src/data/(development only)
Files are named <basis_name_lowercase>.<ext> with the following extensions:
| Extension | Format |
|---|---|
.gbs | Gaussian GBS format |
.bas | Orca export format (orca_exportbasis) |
.json | JSON basis format |
HPC Example
# SLURM job script
#SBATCH --job-name=oquantum
#SBATCH --ntasks=1
export OPENQUANTUM_SCRATCH=/scratch/$USER/$SLURM_JOB_ID
mkdir -p $OPENQUANTUM_SCRATCH
oquantum myjob.inp
The scratch directory is always printed at the start of each run:
Scratch directory: /scratch/user/12345345
Debug Environment Variables
| Variable | Description |
|---|---|
OPENQ_DIIS_TRACE | Set to 1 to print concise DIIS attempt/accept/fallback trace lines for debugging DIIS behavior |
OPENQ_BFGS_TRACE | Set to 1 to print BFGS line-search accept/reject/reset behavior |
The Hartree–Fock Method
The Hartree–Fock (HF) method is a mean-field approximation to the many-electron Schrödinger equation. Each electron moves in an average field created by all other electrons, leading to a set of one-electron equations.
This chapter provides the theoretical foundation for the HF implementation in OpenQuantum, including the electronic Hamiltonian, the Roothaan–Hall equations, the Fock matrix construction, and total energy evaluation.
Overview of Chapters
- Electronic Hamiltonian — The Hamiltonian in atomic units
- Roothaan–Hall Equations — LCAO expansion and matrix equations
- Fock Matrix — Core Hamiltonian and two-electron contributions
- Total Energy — Energy expression and nuclear repulsion
UHF and ROHF
For open-shell systems, see Unrestricted & Restricted Open-Shell HF which covers separate α/β orbitals, spin contamination, and the ROHF formalism.
Key Equations
The central equations are summarized here for quick reference.
Electronic Hamiltonian (atomic units)
where:
- is the one-electron operator (kinetic + nuclear attraction)
- is the electron–electron repulsion
Roothaan–Hall Equations
In the LCAO approximation, molecular orbitals are expanded in atomic orbitals:
This leads to the matrix equations:
where:
- is the Fock matrix
- is the MO coefficient matrix
- is the overlap matrix
- is the diagonal matrix of orbital energies
Fock Matrix Elements
where:
- is the core Hamiltonian (kinetic + nuclear attraction)
- is the two-electron contribution
The density matrix is:
Total Energy
where is the nuclear repulsion energy.
The Electronic Hamiltonian
The electronic Hamiltonian in atomic units is:
where:
- is the one-electron operator (kinetic + nuclear attraction)
- is the electron–electron repulsion
In the Born–Oppenheimer approximation, the nuclei are fixed and the electronic Hamiltonian acts only on electronic coordinates. The nuclear repulsion energy is a constant for a given geometry and is added to the electronic energy at the end.
Atomic Units
OpenQuantum uses atomic units throughout (Hartree for energy, Bohr for distance, electron mass for mass, ). Conversion factors:
| Quantity | Atomic Unit | SI Equivalent |
|---|---|---|
| Energy | 1 Hartree | 4.3597447222071×10⁻¹⁸ J (27.211386245988 eV) |
| Distance | 1 Bohr | 5.29177210903×10⁻¹¹ m (0.529177210903 Å) |
One-Electron Operator
The one-electron operator consists of kinetic energy and nuclear attraction:
In the LCAO basis, the matrix elements are:
where are kinetic energy integrals and are nuclear attraction integrals, both computed via the Obara–Saika recurrence relations.
The Roothaan–Hall Equations
In the LCAO (Linear Combination of Atomic Orbitals) approximation, molecular orbitals are expanded in terms of atomic orbitals:
This leads to the Roothaan–Hall matrix equations:
where:
- is the Fock matrix
- is the MO coefficient matrix
- is the overlap matrix
- is the diagonal matrix of orbital energies
Derivation
The HF energy for a single determinant is:
Minimizing with respect to orbital rotations subject to orthonormality constraints leads to the eigenvalue problem above.
Solution Procedure
The Roothaan–Hall equations are solved iteratively (SCF procedure):
- Initial guess for (core Hamiltonian, Hückel, SAD, or read from checkpoint)
- Build density matrix:
- Build Fock matrix using current density
- Solve for new
- Check convergence (density change, energy change, gradient norm)
- Repeat from step 2 if not converged
Symmetric Orthogonalization
To solve the generalized eigenvalue problem, we transform to an orthonormal basis:
Then is diagonalized:
And the MO coefficients in the original basis are .
Symmetry Adaptation
When point-group symmetry is enabled, the basis functions are symmetry-adapted, block-diagonalizing both and by irreducible representation. Each block is diagonalized separately, producing canonical-like orbital energies within each irrep. This is essential for post-HF calculations (MP2, CCSD(T)) which require symmetry-labeled orbitals.
The Fock Matrix
The Fock matrix elements are:
where:
- is the core Hamiltonian (kinetic + nuclear attraction)
- is the two-electron contribution
The density matrix is:
Core Hamiltonian
The core Hamiltonian matrix elements are computed directly from one-electron integrals:
These integrals are evaluated using the Obara–Saika recurrence relations and are independent of the electron density.
Two-Electron Contribution
The two-electron part of the Fock matrix is built from the density matrix and electron repulsion integrals (ERIs):
The ERIs are computed using:
- McMurchie–Davidson algorithm (default, universal for all angular momenta)
- SP fast paths for S/P shells (up to 10× speedup)
- Rys quadrature for D/F+ shells
- Direct SCF mode for large systems (recomputes ERIs each iteration)
ERIs have 8-fold permutational symmetry:
Only unique ERIs are stored, and symmetry is exploited in all ERI-heavy computations (energy, gradients, Hessians).
Symmetry Acceleration
When point-group symmetry is enabled, only symmetry-unique shell quartets are computed. The detected point group is used to skip symmetry-equivalent ERI shell quartets during energy, gradient, and Hessian computations, and to assign irreducible representation labels (A₁, B₁, B₂, …) to molecular orbitals.
Total Energy
The total HF energy is:
where:
- is the density matrix
- is the core Hamiltonian matrix
- is the Fock matrix
- is the nuclear repulsion energy
Derivation
Starting from the expectation value of the Hamiltonian for a single Slater determinant:
Substituting the LCAO expansion and density matrix definition yields the trace formula above.
Energy Components
The total energy is partitioned into:
| Component | Formula | Description |
|---|---|---|
| Electronic | Sum of one- and two-electron contributions | |
| Nuclear | Classical repulsion between nuclei |
The nuclear repulsion energy is a simple pairwise sum:
where are atomic numbers and are inter-nuclear distances.
Energy Convergence
The SCF procedure monitors:
| Criterion | Default Threshold | Description |
|---|---|---|
| 10⁻⁸ Hartree | Energy change between iterations | |
| 10⁻⁸ | Density matrix RMS change | |
| 10⁻⁸ | Gradient (commutator) max norm |
These can be tightened with the Conver keyword in the SCF section
(Conver 10 for 10⁻¹⁰, etc.).
Unrestricted & Restricted Open-Shell HF
For open-shell systems, OpenQuantum supports both Unrestricted Hartree–Fock (UHF) and Restricted Open-Shell Hartree–Fock (ROHF).
UHF Equations
UHF uses separate spatial orbitals for α and β electrons:
where:
- is the Coulomb matrix from total density
- and are exchange matrices from respective spin densities
The density matrices are:
The Fock matrices are coupled through the common Coulomb matrix .
UHF Energy
Spin Contamination
The S² expectation value measures spin contamination:
Ideal value: where
OpenQuantum reports in the output for every UHF calculation. Significant deviation from the ideal value indicates spin contamination (the determinant is not a pure spin eigenfunction).
ROHF
Restricted Open-Shell HF uses a single set of doubly-occupied orbitals plus singly-occupied orbitals. The Fock matrix is constructed to maintain orbital degeneracy within the open shell. ROHF avoids spin contamination but has a more complex Fock matrix construction.
At convergence, the occupied–occupied and virtual–virtual blocks of the Fock
matrix are diagonalized separately (QCPsuC), producing canonical-like orbital
energies required for subsequent post-HF calculations (MP2, CCSD(T)).
Unrestricted Hartree-Fock (UHF) Equations
For open-shell systems, UHF uses separate spatial orbitals for alpha () and beta () electrons. This breaks spin symmetry but allows different spatial distributions for each spin.
Pople-Nesbet Equations
The UHF Fock equations are:
where , are the alpha and beta Fock matrices, , are the molecular orbital coefficient matrices, is the overlap matrix, and , are the orbital energy vectors.
Fock Matrix Construction
The Fock matrices are:
Components
| Term | Expression | Notes |
|---|---|---|
| Core Hamiltonian | Same for both spins; kinetic + nuclear attraction | |
| Coulomb | From total density | |
| Exchange alpha | From alpha density only | |
| Exchange beta | From beta density only |
The key difference from RHF:
- RHF: (factor 2 from spin summation)
- UHF: uses total density (no factor 2); exchange uses respective spin density
Density Matrices
The alpha and beta density matrices are:
where and are the number of alpha and beta electrons (occupied orbitals).
Electronic Energy
The total electronic energy is the sum of alpha and beta contributions:
Expanding:
The total energy includes nuclear repulsion:
SCF Iteration Procedure
- Initial guess: Build initial , from core Hamiltonian or Hückel/SAD
- Build Fock matrices: ,
- Solve eigenproblems: Diagonalize and similarly for
- Form new densities: , from occupied orbitals
- Check convergence: RMS density change
- Mix/damp/DIIS: Apply acceleration if enabled
- Repeat until convergence
Convergence Criteria
OpenQuantum uses the combined RMS density change:
Default threshold: .
Acceleration Methods
| Method | Description |
|---|---|
| DIIS | Pulay's Direct Inversion in Iterative Subspace (default, starts at iteration 2) |
| Level shifting | Adds shift to virtual orbital energies to prevent oscillations |
| Density damping | |
| Fermi broadening | Fractional occupation near Fermi level for difficult convergence |
| QC-SCF | Quadratic convergence (Newton-Raphson) with spin-parametric code |
Implementation in OpenQuantum
Fock Build (crates/scf/src/fock.rs::build_uhf_fock_matrices)
#![allow(unused)] fn main() { pub fn build_uhf_fock_matrices( h_core: &DMatrix<f64>, density_alpha: &DMatrix<f64>, density_beta: &DMatrix<f64>, eri: &(impl IntegralProvider + Sync), ) -> (DMatrix<f64>, DMatrix<f64>) { // Total density P^T = P^α + P^β let total_density = density_alpha + density_beta; // Coulomb matrix from total density (same for both spins) let j = build_coulomb_matrix(&total_density, eri); // Exchange matrices (different for each spin) let k_alpha = build_exchange_matrix(density_alpha, eri); let k_beta = build_exchange_matrix(density_beta, eri); // F^α = H + J - K^α let fock_alpha = h_core + &j - &k_alpha; // F^β = H + J - K^β let fock_beta = h_core + &j - &k_beta; (fock_alpha, fock_beta) } }
SCF Driver (crates/scf/src/uhf.rs::uhf_scf)
The main loop handles:
- Separate alpha/beta diagonalization with
generalized_eigensolve - DIIS with combined error vectors
- Level shifting on both Fock matrices
- Spin contamination calculation via
compute_s_squared - Convergence checking on combined RMS density change
Initial Guess
OpenQuantum supports three initial guesses for UHF:
- Core Hamiltonian (default): Diagonalize in orthogonal basis; same MOs for both spins, different occupations
- Extended Hückel: Approximate MO coefficients from atomic orbital parameters
- SAD (Superposition of Atomic Densities): Build initial density from atomic fragments
Comparison with RHF
| Aspect | RHF | UHF |
|---|---|---|
| Orbitals | Single set (doubly occupied) | Separate and sets |
| Exchange | One matrix | Two: , |
| Coulomb | (spin sum) | from |
| Spin symmetry | Pure | Contaminated |
| Cost | Lower | ~2× RHF (two Fock builds, two diagonalizations) |
| Use case | Closed-shell | Open-shell, bond breaking, radicals |
ROHF Connection
Restricted open-shell HF (ROHF) uses a single set of orbitals for both spins but with different occupation numbers. The Fock matrix is a linear combination:
ROHF maintains spin purity () but often gives higher energies than UHF for open-shell systems.
Further Reading
- Pople & Nesbet, "Self-consistent orbitals for radicals" (1954)
- Szabo & Ostlund, Modern Quantum Chemistry, Ch. 3
- Helgaker, Jørgensen & Olsen, Molecular Electronic-Structure Theory, Ch. 10
Spin Contamination in UHF
In unrestricted Hartree-Fock (UHF), the single determinant wavefunction is not an eigenfunction of the operator. This leads to spin contamination — the wavefunction mixes in higher-spin states.
The Expectation Value
For a UHF determinant with alpha and beta electrons, the expectation value of the total spin operator is:
where:
- is the expected spin quantum number
- and are the occupied alpha and beta molecular orbitals
- The overlap integral is
Ideal vs. Actual Values
| System | Multiplicity | Ideal | |
|---|---|---|---|
| Doublet (1 unpaired e⁻) | 2 | ½ | 0.75 |
| Triplet (2 unpaired e⁻) | 3 | 1 | 2.00 |
| Quartet (3 unpaired e⁻) | 4 | 3/2 | 3.75 |
The actual from a UHF calculation equals the ideal value only when the alpha and beta occupied orbitals are perfectly orthogonal ( for all ). Any non-zero overlap between occupied alpha and beta orbitals increases above the ideal value.
Quantifying Spin Contamination
The degree of spin contamination is measured by the difference:
- : Pure spin state, minimal contamination
- : Moderate contamination, usually acceptable
- : Significant contamination; results may be unreliable
In OpenQuantum, a warning is printed when :
Spin Information:
N(alpha): 5
N(beta): 4
<S²>: 0.850000 (ideal: 0.750000)
WARNING: Significant spin contamination detected (0.1000)
Physical Interpretation
Spin contamination arises because the UHF determinant allows alpha and beta electrons to occupy different spatial orbitals. This flexibility lowers the energy but mixes in higher-spin configurations:
- For a doublet (), the contaminated wavefunction contains quartet () and higher-spin character
- For a triplet (), it contains quintet () character
- The energy lowering is artificial — it comes from spin-symmetry breaking, not physical correlation
Consequences
- Energies: UHF energies are variationally lower than RHF, but part of this lowering is due to spin contamination rather than physical correlation
- Properties: Properties like dipole moments and gradients may be affected
- Post-HF methods: MP2 and CCSD(T) built on a contaminated UHF reference inherit spin contamination
- Geometry optimization: Contaminated forces can lead to incorrect geometries
Mitigation Strategies
| Strategy | Description |
|---|---|
| ROHF | Restricted open-shell HF — forces alpha/beta orbitals to be identical in the open shell; spin-pure but often higher energy |
| Spin projection | Approximate projection of (e.g., Yamaguchi formula) |
| Spin-flip methods | Use spin-flip TDDFT or spin-flip CC to target spin-pure states |
| Use RHF for closed-shell | Avoid UHF entirely when not needed |
Implementation in OpenQuantum
The computation is in crates/scf/src/fock.rs::compute_s_squared():
#![allow(unused)] fn main() { pub fn compute_s_squared( coefficients_alpha: &DMatrix<f64>, coefficients_beta: &DMatrix<f64>, overlap: &DMatrix<f64>, n_alpha: usize, n_beta: usize, ) -> (f64, f64) { // Ideal S²: S(S+1) where S = (N_α - N_β)/2 let s = (n_alpha as f64 - n_beta as f64) / 2.0; let s_squared_ideal = s * (s + 1.0); // Overlap of occupied orbitals: S_αβ = C_occ^α^T · S · C_occ^β let c_alpha_occ = coefficients_alpha.columns(0, n_alpha); let c_beta_occ = coefficients_beta.columns(0, n_beta); let s_alpha_beta = c_alpha_occ.transpose() * overlap * c_beta_occ; // Sum of squared overlaps let overlap_sum: f64 = s_alpha_beta.iter().map(|x| x * x).sum(); // ⟨S²⟩ = S_ideal + N_β - Σ|S_αβ|² let s_squared = s_squared_ideal + n_beta as f64 - overlap_sum; (s_squared, s_squared_ideal) } }
The result is returned in UhfResult and formatted in format_uhf_energy_output() with a warning for significant contamination.
Further Reading
- Szabo & Ostlund, Modern Quantum Chemistry, Ch. 3 (UHF theory)
- Krylov, "Spin-flip methods in quantum chemistry" (2006)
- Yamaguchi et al., "Spin-projected UHF energies" (1986)
Gaussian Basis Functions
OpenQuantum uses Cartesian Gaussian-type orbitals (GTOs):
where:
- is the normalization constant
- is the angular momentum
- is the Gaussian exponent
Contracted Gaussians
Contracted Gaussians are linear combinations of primitives:
The contraction coefficients and exponents are read from
basis set definition files (.obs format, compatible with EMSL BSE).
Normalization
Primitives are normalized so that:
The normalization constant for a Cartesian GTO is:
Pure Spherical Harmonics
By default, OpenQuantum transforms Cartesian basis functions to pure spherical harmonics (5d, 7f, etc.). This reduces the number of basis functions for higher angular momentum:
| Shell | Cartesian | Pure | Reduction |
|---|---|---|---|
| d | 6 | 5 | 1 |
| f | 10 | 7 | 3 |
| g | 15 | 9 | 6 |
Use 5d/7f (default) for pure harmonics, 6d/10f for Cartesian.
Embedded Basis Sets
OpenQuantum ships with over 100 basis sets via embedded .obs files:
| Family | Examples | Coverage |
|---|---|---|
| Pople | STO-3G, 3-21G, 6-31G, 6-31G*, 6-31G**, 6-31+G*, 6-311G | H–Xe |
| Dunning | cc-pVDZ, cc-pVTZ, cc-pVQZ, aug-cc-pVDZ, aug-cc-pVTZ | H–Kr |
| Ahlrichs | def2-SVP, def2-TZVP, def2-TZVPP, def2-QZVP | H–Rn |
| Other | D95, ANO-SEG, UGBS, CBSB7 | varies |
See Basis Sets Reference for the complete list and usage.
Integral Evaluation
OpenQuantum computes all required molecular integrals using modern recurrence relations and efficient algorithms.
Overview of Chapters
- One-Electron Integrals — Overlap, kinetic, nuclear attraction
- Two-Electron Integrals — ERIs with MD, SP fast paths, Rys quadrature
One-Electron Integrals
One-electron integrals are evaluated using the Obara–Saika recurrence relations which provide an efficient and numerically stable way to compute integrals for arbitrary angular momentum.
| Integral | Formula | Method |
|---|---|---|
| Overlap | Obara–Saika | |
| Kinetic | Obara–Saika | |
| Nuclear Attraction | Obara–Saika |
Two-Electron Integrals
Electron repulsion integrals (ERIs):
ERIs have 8-fold permutational symmetry. OpenQuantum provides multiple algorithms:
| Algorithm | Best For | Key Feature |
|---|---|---|
| McMurchie–Davidson | All systems (default) | Universal, correct for all angular momenta |
| SP Fast Paths | Organic molecules (H,C,N,O,F) | 10× ERI speedup for S/P shells only |
| Rys Quadrature | Transition metals, D/F+ basis sets | Rys-first path with MD fallback |
The selected ERI engine applies to all ERI computation paths: in-core integral build, direct SCF, analytical nuclear gradients, fully analytical Hessians, and semi-analytical (finite-difference of gradients) Hessians.
See Two-Electron Integrals for detailed algorithm descriptions.
One-Electron Integrals
OpenQuantum evaluates one-electron integrals using the Obara–Saika recurrence relations, which provide an efficient and numerically stable way to compute integrals for arbitrary angular momentum.
Overlap Integrals
The overlap matrix is used throughout the calculation for orthogonalization, density matrix formation, and energy evaluation.
Kinetic Energy Integrals
The kinetic energy operator in atomic units is . These integrals contribute to the core Hamiltonian .
Nuclear Attraction Integrals
The nuclear attraction potential is a sum over all nuclei with charge at position . These integrals are computed efficiently using the Obara–Saika scheme with Rys quadrature for the operator.
Obara–Saika Recurrence
The Obara–Saika method generates higher angular momentum integrals from lower ones using recurrence relations. For a Gaussian product , the recurrence steps up angular momentum in each Cartesian direction:
where is the vector from the Gaussian center to nucleus , and is the Gaussian exponent.
This recurrence is numerically stable and avoids the catastrophic cancellation issues of earlier methods.
Two-Electron Integrals
Electron repulsion integrals (ERIs) are the computational bottleneck of Hartree–Fock and post-Hartree–Fock calculations:
Permutational Symmetry
ERIs have 8-fold permutational symmetry:
Only unique ERIs are stored and computed. This reduces storage and computation by a factor of 8.
ERI Engine Selection
OpenQuantum provides multiple ERI algorithms, selectable via the INT section:
INT
Eri auto # auto, md, sp, rys
END
| Engine | Key | Best For | Notes |
|---|---|---|---|
| McMurchie–Davidson | md | All systems (default) | Universal, correct for all angular momenta |
| SP Fast Paths | sp / spfast | Organic (H,C,N,O,F) | 10× speedup for S/P shells |
| Rys Quadrature | rys / rysquadrature | Transition metals, D/F+ | Rys-first with MD fallback |
| Auto | auto | General use | Fast SP + Rys routing, MD fallback |
The selected engine applies to all ERI computation paths:
- In-core integral build
- Direct SCF
- Analytical nuclear gradients
- Fully analytical Hessians
- Semi-analytical (FD) Hessians
McMurchie–Davidson Algorithm
The MD algorithm uses Hermite Gaussian intermediates and is universal for all angular momenta. It builds ERIs by:
- Computing Hermite integrals over Gaussian primitives
- Contracting to shell-pair level
- Applying permutational symmetry
Complexity scales as for maximum angular momentum .
SP Fast Paths
For S and P shells (angular momentum ), analytical formulas give exact ERIs with far fewer operations. These are ~10× faster than MD for organic molecules. For higher angular momentum shells, MD is used as fallback.
Rys Quadrature
Rys quadrature is a numerical integration method that becomes competitive for D/F+ shells. OpenQuantum implements the Phenix-style Rys algorithm with precomputed roots and weights. MD is used as fallback when the Rys path is unavailable.
Schwarz Screening
For direct SCF and large systems, ERIs are pre-screened using the Cauchy–Schwarz inequality:
Only ERIs above the threshold Acc2E (default 10⁻¹²) are computed. This
dramatically reduces the number of ERIs for large systems.
Analytic Nuclear Gradients
The RHF analytic gradient is:
where is the energy-weighted density matrix.
The UHF gradient has separate α and β components for the density and energy-weighted density matrices.
Gradient Components
| Term | Description |
|---|---|
| One-electron | — Core Hamiltonian derivative |
| Two-electron | — ERI derivative |
| Overlap | — Orbital response |
| Nuclear | — Classical nuclear repulsion derivative |
Symmetry Acceleration
Analytic gradients use symmetry-accelerated ERI derivatives (skips symmetry-equivalent shell quartets). The detected point group is used to skip symmetry-equivalent ERI shell quartets during gradient computations, matching the GRAD2E SymShl approach.
This provides near-proportional speed-ups based on symmetry order (e.g., 2× for C₂, 4× for D₂ₕ) for quadratically-scaling steps.
Implementation
Gradient integrals are evaluated using the Obara–Saika recurrence for derivatives. The derivative of a Gaussian integral with respect to nuclear position is computed by differentiating the recurrence relations.
The gradient is used by:
- BFGS optimizer (Cartesian)
- Berny optimizer (internal coordinates)
- IRC path following
- NEB pathway optimization
- Geometry-space DIIS (GDIIS/GEDIIS)
Implicit Solvent Models
Implicit solvation treats the solvent as a structureless polarizable continuum rather than individual molecules. The solute occupies a cavity inside the dielectric, and the reaction field of the polarized solvent feeds back into the solute's Hamiltonian.
OpenQuantum supports seven electrostatic models across two discretization families.
Theoretical Framework
The total free energy in an implicit solvent is
G = E_gas + ΔG_solv
where ΔG_solv is the solvation free energy, split into electrostatic (ΔG_es) and
non-electrostatic (ΔG_non‑es) contributions. The electrostatic part comes from
polarizing the dielectric continuum; the non-electrostatic part covers cavitation,
dispersion, and solvent-structure effects (CDS).
Apparent Surface Charge (ASC) Formalism
All PCM-family models represent the reaction field through apparent surface charges
q on the cavity boundary. The charges solve a linear system
K·q = R·v
where v is the electrostatic potential (nuclear + electronic) evaluated at each
cavity point, and matrices K and R define the electrostatic model. The
reaction-field energy is
E_RF = ½ qᵀ · v
and the Fock matrix contribution is the AO potential of the Gaussian-smeared surface charges.
Cavity Surface: SWIG and ISWIG
Two smooth-surface discretizations are available:
-
SWIG (Switching/Gaussian): Uses a polynomial switching function to smoothly attenuate surface elements that lie inside neighbouring atoms' spheres. The Gaussian charge exponent
ξcontrols the spatial extent of each surface element. -
ISWIG (Improved SWIG): Uses an error-function-based switching (erf) that provides smoother behaviour at the cost of slightly more computation.
Both methods produce a set of tesserae (surface points) per atom, each carrying a
Gaussian charge density (η/π)^(3/2) exp(-η|r − C|²) with η = ξ².
Electrostatic Models
C-PCM (Conductor-like PCM)
The simplest ASC model. Assumes the solvent is a perfect conductor (ε → ∞), then scales back to finite ε:
K = S, R = −f·I, f = (ε − 1) / ε
S is the Coulomb interaction matrix between Gaussian surface charges. Suitable for
high-dielectric solvents (water, DMSO).
COSMO (Conductor-like Screening Model)
Similar to C-PCM but uses a different scaling factor:
f = (ε − 1) / (ε + ½)
Often more accurate for low-dielectric solvents.
IEF-PCM (Integral Equation Formalism PCM)
The full dielectric model including the normal-derivative matrix D:
K = S − f/(2π)·D·A·S, R = −f·[I − 1/(2π)·D·A]
where A is the diagonal area matrix. IEF-PCM is the most general ASC model and
reduces to C-PCM or COSMO in the appropriate limits.
SS(V)PE (Surface and Simulation of Volume Polarization for Electrostatics)
A symmetrized variant of IEF-PCM:
K = S − f/(4π)·(D·A·S + S·A·Dᵀ), R = −f·[I − 1/(2π)·D·A]
SS(V)PE is the model of choice for general quantum-chemical applications with implicit solvation; it matches the exact solution for spherical cavities.
ddCOSMO / ddPCM (Domain Decomposition)
Domain-decomposition variants expand the reaction potential in real spherical
harmonics on atomic van der Waals spheres rather than on a discretized cavity
surface. The L coupling matrix replaces S/D, and the system size scales as
natm × (lmax+1)²:
L·X = φ, E_RF = ½·f_ε·ψ·X
- ddCOSMO: Conductor-like (COSMO) variant.
- ddPCM: Full dielectric variant using the A matrix.
Both are well-suited for large systems because the number of degrees of freedom depends only on the number of atoms and the spherical-harmonic order (lmax = 6 by default).
SMD (Solvation Model based on Density)
SMD layers a non-electrostatic CDS term on IEF-PCM electrostatics:
ΔG_solv = ΔG_es(IEF-PCM) + ΔG_cds
The CDS term uses atomic surface tensions parametrized for 96 solvents plus water. SMD requires a named solvent (not just a dielectric constant).
Analytical Gradients and Hessians
All four PCM-family models (C-PCM, COSMO, IEF-PCM, SS(V)PE) provide:
-
Gradient: Three contributions — nuclear–cavity (
grad_nuc), cavity response (grad_solver), and electron–cavity integral derivative (grad_qv). The total solvent gradient is added to the gas-phase gradient. -
Hessian: Three contributions — nuclear–cavity curvature (
hess_nuc), cavity-response curvature (hess_solver), and electron–cavity integral curvature (hess_qv). The total solvent Hessian is added to the gas-phase Hessian.The analytical Hessian with solvent is available for C-PCM, COSMO, IEF-PCM, and SS(V)PE via
freq=(analytical). The Hessian uses the solvated density fromrhf_scf_with_reaction_fieldoruhf_scf_with_reaction_fieldand includes the CPHF solvent response (AXPCM kernel). -
ddCOSMO/ddPCM gradient: The analytical gradient uses the adjoint- Lagrangian formulation (
ζ = L⁻¹·ψ). The l=0,m=0 block of the L matrix uses the exact Coulomb formula−1/|R_ia−R_ka|instead of the singular quadrature, making the gradient physically meaningful.
DFT-solvent coupling
Kohn–Sham DFT with implicit solvation adds the XC potential and the PCM
reaction-field potential to the same effective Fock matrix. The SCF coupling
is handled by dedicated entry points in the scf crate:
rks_scf_with_reaction_field— Restricted Kohn–Sham with any PCM-family, ddCOSMO/ddPCM, or SMD solvent.uks_scf_with_reaction_field— Unrestricted Kohn–Sham with solvent.
At each SCF iteration the Fock matrix is
where is the XC potential from grid quadrature and is the reaction-field potential from the solvent surface charges. The exact-exchange coefficient is zero for pure functionals and non-zero for hybrids and range-separated hybrids.
The total free energy in a solvent DFT calculation is
with for PCM models and the SMD CDS correction.
Geometry optimization and frequency analysis in solvent
Optimizations in solvent recompute the cavity at each geometry step because the cavity surface is a function of the nuclear positions. The analytical gradient carries the full PCM contribution (grad_nuc + grad_solver + grad_qv) alongside the DFT gradient.
Harmonic frequencies with solvent use the solvated electronic density and
include the PCM curvature contributions. The analytical Hessian is available
for RHF/UHF/RKS/UKS with C-PCM, COSMO, IEF-PCM, and SS(V)PE. For
ddCOSMO/ddPCM, finite-difference Hessians (freq=(numerical)) are the
fallback.
Supported task combinations
| Calculation | HF | DFT (RKS/UKS) | Solvent | Analytical Gradient | Analytical Hessian |
|---|---|---|---|---|---|
| Single point | ✓ | ✓ | ✓ | — | — |
| Optimization | ✓ | ✓ | ✓ | ✓ (gas + solv) | — |
| Frequency | ✓ | ✓ | ✓ | — | ✓ (PCM-family) |
| Post-HF (MP2/CC) | ✓ | — | ✓ * | — | — |
- Post-HF in solvent uses the frozen solvent approximation (
Frozen truein theSOLVATIONsection) by default.
Geometry Optimization Algorithms
OpenQuantum provides a comprehensive suite of geometry optimization algorithms for minima and transition-state searches.
Overview of Chapters
- Primitive Internal Coordinates — Topology, B-matrix, Lindh Hessian, TRM step
- Delocalized & TRIC Coordinates — SVD rank detection, rigid-body removal
- GeomeTRIC Optimizer — Native TRIC quasi-Newton minimizer / RS-P-RFO TS engine
- IRC — Intrinsic Reaction Coordinate — Gonzalez–Schlegel mass-weighted predictor-corrector
- Transition-State Search — P-RFO, Bofill update, TS-specific trust radius
- Quasi-Newton Hessian Updates — MSP, BFGS, TS-BFGS, SR1, DFP, Bofill, PSB, MS, BFGS/Powell
- NEB — Nudged Elastic Band — Henkelman–Jónsson with climbing image
- Davidson Partial Eigensolver — Rayleigh–Ritz for lowest eigenvalues
- Minimum Mode Following — Alternative TS step with |λ| denominator
- Sella-Style Optimizer — TS-BFGS, sigma-trust, adaptive eigenvalue correction
Optimizer Selection
The optimizer is selected via the OPT section:
OPT
Algorithm bfgs | berny | rberny | sella | geometric
Coord cartesian | primitive | dlc | hdlc | tric | tric-p
...
END
| Algorithm | Description | Use Case |
|---|---|---|
bfgs | Cartesian BFGS | Simple minima, small systems |
berny | Berny RFO (internal coordinates) | Standard minima, robust |
rberny | Rust Berny backend | High performance, native IC |
sella | Saddle-point-aware IC optimizer | TS searches, difficult surfaces |
geometric | GeomeTRIC TRIC quasi-Newton (RS-P-RFO for TS) | Floppy systems, multi-fragment, TS searches |
Coordinate Models
| Model | Key | Description |
|---|---|---|
| Cartesian | cartesian | Direct 3N optimization, no IC back-transform |
| Primitive IC | primitive | Full redundant primitive set (bonds, angles, dihedrals, OOP, linear) |
| DLC | dlc | Non-redundant delocalized basis from SVD of B-matrix |
| HDLC | hdlc | Hybrid DLC with Cartesian components |
| TRIC | tric | DLC + rigid-body translational/rotational modes removed |
| TRIC-p | tric-p | TRIC with projected Cartesian components |
Transition-State Search
Activate with TransitionState true or the TS task token. Two TS step
engines are available, depending on the optimizer backend:
- P-RFO (Berny / Sella) partitions the Hessian into a TS mode (maximize) and minimization modes.
- RS-P-RFO (GeomeTRIC) is the restricted-step partitioned RFO variant; it applies a positive metric scaling and a damped Hebden iteration to keep the step inside the trust radius. See GeomeTRIC Optimizer for details.
GEDIIS Acceleration
Geometry-space DIIS (GDIIS/GEDIIS) extrapolates from previous geometry/gradient
points. Enable with Diis true in the OPT section. Most effective for
difficult optimizations near flat PES regions.
Orbital Warm-Start
Between optimization cycles the molecular geometry changes only slightly, so the converged orbitals from one cycle are an excellent initial guess for the SCF at the next. By default the optimizer carries the previous cycle's density matrix forward and uses it as the SCF guess, which typically reduces the SCF iteration count markedly after the first cycle. The first cycle has no prior orbitals and uses the configured SCF guess (core Hamiltonian by default).
This warm-start applies to RHF, UHF, and ROHF and to every optimizer backend and
run mode (minimization, TS, IRC, NEB). Disable it with MOGuess false in the
OPT section to force a fresh guess at every geometry.
Convergence Criteria
5-criterion Gaussian-style check:
- Energy change ΔE
- Gradient RMS
- Gradient max
- Displacement RMS
- Displacement max
Presets: Gauss default, Gauss loose, Gauss tight, or customize with
Tighten N (tightens all by 10⁻ᴺ).
Primitive Internal Coordinates (IC)
When Coord primitive, Coord dlc, or Coord tric is requested, geometry steps
are taken in internal-coordinate (IC) space using:
1. Topology Detection
- Covalent-radius bond detection (38 elements, Alvarez 2008 radii)
- Bond graph traversal for angles, dihedrals, out-of-plane bending (sp² centers), and supplementary linear-angle components for near-linear triplets
2. Wilson B-Matrix
Analytic Cartesian derivatives for all primitive types:
- Bonds, angles: standard Wilson formulae
- Dihedrals / out-of-plane: analytic 4-atom gradient (cross-product formula)
- Linear-angle: stateless perpendicular-axis construction + finite-difference gradient
The B-matrix relates Cartesian displacements to IC displacements:
3. Lindh Model Hessian
Initial diagonal estimate in IC space:
- Bonds: per Lindh
- Angles / linear-angle:
- Dihedrals / out-of-plane:
4. IC Back-Transform
Iterative Newton method loop)
with periodic-angle wrapping; returns (new_xyz, bork) convergence flag.
5. Hessian Update
MSP (mixed-mode) update blending BFGS and Murtagh–Sargent with parameter ; falls back to pure BFGS.
6. Step Engine
Trust-radius method (TRM) with level-shifted Newton step; Brent bisection to satisfy .
7. Convergence
5-criterion Gaussian-style check:
- Energy change ΔE
- Gradient RMS/max
- Displacement RMS/max
Thresholds from ConvergenceCriteria (gaussian_default, gaussian_loose, gaussian_tight).
8. Trust-Radius Update
ρ-based acceptance ratio; shrink on , grow on .
Delocalized & TRIC Coordinates
Delocalized Internal Coordinates (DLC)
DLC forms a non-redundant basis from the redundant primitive ICs:
- SVD rank detection on the primitive B-matrix builds a non-redundant delocalized basis
- Projection and back-transform operate in the reduced space
The DLC basis matrix (rank × m) is obtained via SVD of the B-matrix:
Gradients and Hessians are transformed:
The primitive Hessian is retained in full redundant IC space and updated via MSP as usual, providing stable curvature propagation across steps.
Translation-Rotation Internal Coordinates (TRIC)
TRIC adds rigid-body translational and rotational modes via weighted internal coordinates:
- Modified Gram-Schmidt removes translational/rotational modes before and after DLC projection
- Rigid-body components suppressed to machine precision
TRIC is required for:
Rigid trueoptionRemoveTr trueoption (also works with DLC/HDLC)
Native TRIC Coordinate System
The GeomeTRIC optimizer backend builds an explicit translation-rotation
internal-coordinate system rather than removing TR modes from a DLC basis. For
each disconnected fragment it appends six rigid-body coordinates in the order
:
- Translation coordinates are the fragment centroid components.
- Rotation coordinates are an exponential-map representation of the optimal rotation relative to the geometry captured when the system is built. The exponential map avoids gimbal-lock singularities, and its analytic derivatives supply the rotational rows of the Wilson -matrix.
Dihedral and rotation coordinates are periodic: internal-coordinate differences for these wrap into during gradient projection and the internal-to-Cartesian back-transform. See the GeomeTRIC Optimizer chapter for the full step engine, initial-Hessian strategy, and trust-radius control.
HDLC (Hybrid Delocalized)
HDLC adds Cartesian components to the DLC basis, providing a complete spanning set while retaining the benefits of delocalization for the internal degrees of freedom.
Usage
OPT
Coord dlc # or tric, hdlc, tric-p
...
END
TRIC is recommended for systems with floppy modes or when exact translational/ rotational separation is needed.
GeomeTRIC Optimizer
The GeomeTRIC backend is a quasi-Newton geometry optimizer that works
natively in translation-rotation internal coordinates (TRIC). It targets
both energy minima and first-order saddle points, drives an adaptive
trust-radius loop, and back-transforms each internal-coordinate step to
Cartesian space iteratively.
Select it from the OPT section:
OPT
Algorithm geometric # aliases: geomet, tric
Coord tric | tric-p # tric-p uses primitives only
...
END
Coordinate System
The optimizer builds a [TricSystem] from molecular topology:
- Topology primitives — bonds, angles, dihedrals, and out-of-plane terms inferred from the connectivity graph. A linear/chain fallback is used when the topology yields no primitives.
- Per-fragment external coordinates — for the
tricmodel, each disconnected fragment contributes six rigid-body coordinates ordered as :- Translation is the fragment centroid.
- Rotation is encoded as an exponential map relative to the geometry captured when the system was built.
The tric-p model uses topology primitives only (no rigid-body coordinates),
matching the Primitive coordinate kind.
Rotation Coordinates
Rotational internal coordinates use a quaternion/exponential-map algebra:
- The optimal rotation quaternion between the current fragment geometry and its reference is obtained from the eigenvector of a correlation matrix.
- The quaternion is mapped to a three-component exponential map that is free of gimbal singularities over the working range.
- Analytic derivatives of the exponential map with respect to Cartesian coordinates supply the rotational rows of the Wilson -matrix.
B-Matrix and Gradient Projection
The Wilson -matrix collects for every internal coordinate. Primitive rows come from the topology set; the centroid translation rows are constant (), and the rotation rows come from the analytic exponential-map derivatives.
Cartesian gradients are projected into internals through the Wilson -matrix:
with formed as an SVD pseudo-inverse to handle the redundancy of the internal set.
Initial Hessian
initial_ic_hessian seeds the internal-coordinate Hessian:
- From a Cartesian Hessian (recommended for TS): transformed into internals via . For minimization it is forced positive-definite; for TS the single negative eigenvalue (the reaction coordinate) is preserved.
- Model guess (fallback): the Lindh diagonal for primitives plus weak positive curvature ( a.u.) on each translation/rotation coordinate. This fallback also covers degenerate B-matrices from near-linear fragments.
Step Engine
Each cycle proposes a step with the trust-radius engine:
- Minimization uses the trust-radius Newton-Raphson (TRM) step with BFGS Hessian updates by default.
- Transition states use restricted-step partitioned RFO (RS-P-RFO), which maximizes along the lowest Hessian eigenmode (transition vector) and minimizes along the rest, with Bofill Hessian updates by default.
The trust_step driver scales the proposed step to the current trust radius via
a damped Hebden iteration. The iteration is bounded (oscillation detection plus
a hard MAX_ITER cap) and returns the best step found. The RS-P-RFO metric uses
a strictly positive scaling parameter; non-finite or non-positive values are
clamped to a small positive floor so the symmetric eigensolver always converges.
Internal-to-Cartesian Back-Transform
ic_to_cartesian recovers Cartesian coordinates that reproduce a target
internal displacement through the iteration
with periodic-aware residuals (dihedral and rotation coordinates wrap into
), per-atom step capping, and adaptive damping. A bork flag is
raised when the residual stays large, which the optimizer treats as a rejected
step.
Trust-Radius Control
The step quality factor drives an adaptive trust radius:
- at the trust boundary → grow trust (up to
TMax). - → shrink trust (down to the floor).
- Bad steps are rejected and retried with a halved trust radius; once the floor is reached the step is accepted to keep making progress.
Minimization rejects energy-raising steps against a confident prediction; TS searches legitimately raise the energy along the reaction coordinate and only reject pathological quality factors or failed back-transforms.
Convergence
Uses the same 5-criterion Gaussian-style test as the other backends (energy change, gradient RMS/max, displacement RMS/max). See Geometry Optimization Algorithms for the shared convergence presets.
IRC — Intrinsic Reaction Coordinate
The Gonzalez–Schlegel (1990) algorithm for mass-weighted IRC following:
Algorithm
-
Mass-weight the input Hessian:
-
Diagonalize to find the mode of largest imaginary frequency
-
Displace along that mode (forward and reverse) to get two starting points
-
For each direction: predictor (mass-weighted steepest descent) + corrector (constrained optimization orthogonal to the path tangent)
- The corrector uses a proper Gonzalez–Schlegel corrector sub-loop (up to 10 iterations per IRC step)
- The gradient is projected orthogonal to the radial (path tangent) direction in mass-weighted coordinates
- A constrained steepest-descent step is taken on the hypersphere
- Iterates until the perpendicular gradient norm is below
-
Convergence by max-gradient norm; output is a list of
IrcPoint(arc, geometry, energy)
Bidirectional IRC
The IRC true directive triggers bidirectional IRC from the provided geometry.
Restrict to one direction with IRCDir +1 (forward) or IRCDir -1 (reverse).
Requirements
- Starting geometry should be a pre-converged transition state (imaginary frequency expected)
- The initial Hessian must have at least one negative eigenvalue for the reaction mode
Usage
task: RHF STO-3G
GEOMETRY
...
END
OPT
IRC true
IRCDir +1
END
The output includes per-step energies, geometries, and a formatted path summary.
Transition-State Search (Berny Optimizer)
The Berny optimizer supports transition-state (TS) searches via the TS task
token or by setting TransitionState true in the OPT section. The implementation
uses Partitioned Rational Function Optimization (P-RFO) to locate first-order
saddle points.
See also: the GeomeTRIC Optimizer provides an alternative restricted-step partitioned RFO (RS-P-RFO) TS engine in translation-rotation internal coordinates. Select it with
Algorithm geometricplusTransitionState true.
Theory
A transition state is a first-order saddle point on the potential energy surface (PES) — a stationary point with exactly one negative eigenvalue of the Hessian matrix. The negative eigenvalue corresponds to the reaction coordinate (the direction connecting reactant and product).
The P-RFO method partitions the Hessian eigenvectors into two subspaces:
- TS mode (mode 1, lowest eigenvalue): maximize energy along this direction
- Minimisation modes (all other modes): minimize energy along these directions
The step is computed as:
where the coefficients are:
The RFO roots are:
Implementation Details
The TS search in the Berny optimizer includes:
-
Initial TS Hessian (
init_ts_hessian):- When no analytical Hessian is provided, the Lindh model Hessian is used
- The softest IC mode (lowest eigenvalue) is set to −0.2 a.u.
- This ensures P-RFO has a well-defined ascent direction from the first step
-
P-RFO Step (
prfo_stepinstep_engine.rs):- Eigendecomposes the Hessian:
- Sorts eigenvalues/eigenvectors by ascending eigenvalue
- Projects gradient onto eigenvectors:
- Computes RFO roots for TS mode (upper) and minimisation modes (lower)
- Forms step in eigenbasis, transforms back to IC space
- Scales to trust radius if step is too large
-
Hessian Eigenvalue Check (
ensure_correct_negative_eigenvalues):- Runs every 3 cycles during TS optimization
- Checks that the Hessian has exactly 1 negative eigenvalue
- If too few: flips smallest positive eigenvalues to −0.2 a.u.
- If too many: flips least-negative eigenvalues to +0.2 a.u.
-
Bofill Hessian Update (
update_hessian_bofill):- Blends PSB (Powell-Symmetric-Broyden) and MS (Murtagh-Sargent) updates
- Weight:
- When : pure PSB (preserves curvature info)
- When : pure MS (rank-1 correction)
- Automatically adapts based on local surface curvature
-
TS-Specific Trust Radius:
- Initial trust: 0.01 Å (vs 0.3 Å for minima)
- Maximum trust: 0.03 Å (vs 0.3 Å for minima)
- Conservative values prevent large steps near saddle points
-
TS-Specific DIIS Weighting:
- Reaction coordinate gradient component scaled by factor 2.0
- Minimum subspace size: 3 points (vs 2 for minima)
- Cosine threshold: 0.5 (vs 0.0 for minima)
-
TS-Specific Output:
- Prints Hessian negative eigenvalue count at each cycle
- Header shows "Transition-State Optimization (Berny IC-space, P-RFO)"
TS Search Algorithm Flow
berny_optimize_ic_with_controls()
│
├─ Set TS-specific trust defaults (0.01, 0.03)
│
├─ Initialize Hessian
│ ├─ If cart_hessian provided: use it
│ └─ Else: guess_hessian_lindh()
│ └─ If transition_state: init_ts_hessian(h, 1, -0.2)
│
└─ Main loop
│
├─ Compute IC gradient
│
├─ TS diagnostics (print negative eigenvalue count)
│
├─ Select step method
│ ├─ If transition_state: prfo_step()
│ └─ Else: trm_step() or gediis()
│
├─ IC → Cartesian back-transform
│
├─ Evaluate energy and gradient
│
├─ Convergence check
│
├─ Trust-radius update
│
├─ Hessian update
│ ├─ If transition_state: update_hessian_bofill()
│ └─ Else: update_hessian_msp()
│
├─ Periodic eigenvalue check (every 3 cycles)
│ └─ ensure_correct_negative_eigenvalues(h, 1, 0.2)
│
└─ Accept step
Verification
A genuine TS shows exactly one imaginary frequency (printed as a negative value):
Frequencies (cm⁻¹): -1247.3 1652.1 3825.4
Verify with a subsequent FREQ job on the converged TS geometry.
Quasi-Newton Hessian Update Methods
Four update formulas are available via HessianUpdateMethod, selected with the
Update keyword in the OPT section:
OPT
Update bfgs | psb | ms | bofill | sr1 | dfp | bfgs_powell | ts-bfgs
END
MSP (Mixed Symmetric Powell — default for minimisations)
Adaptively blends BFGS and Murtagh–Sargent updates via a mixing parameter where :
BFGS (Broyden–Fletcher–Goldfarb–Shanno)
The classic rank-2 update:
Preserves positive-definiteness when ; unsuitable for TS searches.
TS-BFGS (Transition-State BFGS — default for saddle-point searches)
Standard BFGS drives the Hessian positive-definite, which destroys the negative curvature direction needed for TS optimization. TS-BFGS replaces the curvature metric with (using the absolute-value Hessian , obtained by diagonalizing and flipping negative eigenvalues to their absolute values) so that the negative eigenvalue directions are maintained across steps.
The rank-2 single-step formula:
where is the IC-space displacement and is the gradient change.
Properties:
- The quasi-Newton secant condition is approximately satisfied
- Negative eigenvalues are preserved, not destroyed
- Reduces exactly to standard BFGS when is positive-definite
SR1 (Symmetric Rank-1)
SR1 can build indefinite Hessian approximations naturally (no positive-definite constraint). Can be unstable if is small, so a skip condition is applied.
DFP (Davidon–Fletcher–Powell)
DFP is the inverse-Hessian analogue of BFGS. It preserves positive-definiteness but can be slow to converge on ill-conditioned surfaces.
Bofill (Bofill Weighted Update — default for TS searches)
The Bofill update blends the Powell-Symmetric-Broyden (PSB) and Murtagh-Sargent (MS) updates with a weight that measures how well the secant condition is satisfied:
Properties:
- When : pure PSB (good for TS, preserves curvature information)
- When : pure MS (good for minima, rank-1 correction)
- Automatically adapts between PSB and MS based on the local surface curvature
PSB (Powell-Symmetric-Broyden)
PSB is a symmetric rank-2 update that does not preserve positive-definiteness. It is used as part of the Bofill update and is suitable for TS searches where the Hessian must remain indefinite.
MS (Murtagh-Sargent)
MS is a rank-1 update that can produce indefinite Hessians naturally. It is used as part of the Bofill update and is the simplest update that allows negative eigenvalues.
BFGS/Powell Mixed
if is_ts:
H_new = Bofill(H,s,y) # φ·PSB + (1-φ)·MS
else:
H_new = BFGS(H,s,y) # Standard BFGS
This method automatically selects BFGS for minima and Bofill for TS searches, providing a seamless transition between the two regimes.
Summary
| Method | Formula | Preserves PD | TS-Suitable | Default For |
|---|---|---|---|---|
| MSP | No | Yes | Minima | |
| BFGS | Yes | No | — | |
| TS-BFGS | Uses in metric | No | Yes | TS (Sella) |
| SR1 | No | Yes | — | |
| DFP | Yes | No | — | |
| Bofill | No | Yes | TS (Berny) | |
| PSB | No | Yes | — | |
| MS | No | Yes | — | |
| BFGS/Powell | BFGS or Bofill based on mode | Auto | Auto | — |
NEB — Nudged Elastic Band
Henkelman–Jónsson (2000) NEB with climbing-image (CI-NEB):
Algorithm
-
Linear interpolation of images between start and end endpoints
-
Energy-weighted tangent selection: uphill images use max-energy neighbor, downhill use min-energy neighbor; blended at energy crossings
-
Spring force along tangent:
-
CI-NEB activates after iterations: highest-energy image climbs by inverting the gradient component along the tangent
-
Gradient-descent relaxation of the full image band; convergence by max force across all moveable images
-
Output includes per-image energies, geometries, and a formatted path summary
Usage
task: RHF STO-3G
GEOMETRY
# Start geometry
O 0.000000 0.000000 0.100000
H 0.750000 0.000000 -0.450000
H -0.750000 0.000000 -0.450000
# End geometry
O 0.000000 0.000000 0.100000
H 0.750000 0.100000 -0.450000
H -0.750000 -0.100000 -0.450000
END
OPT
NEB true
Images 8
END
The start and end geometries are provided as consecutive blocks in the GEOMETRY
section separated by a blank line. Images N controls the number of interpolating
images (default 8).
Davidson Partial Eigensolver
A Rayleigh–Ritz iterative procedure for finding the k lowest eigenvalues and eigenvectors of a large matrix without forming or storing it explicitly. Only matrix-vector products are required (supplied as a closure or via finite-difference gradient evaluations).
Algorithm
- Initialise subspace with unit vectors (or a user-supplied guess)
- Build projected matrix (size , grows each step)
- Diagonalise Ritz values and Ritz vectors
- Check residuals for all :
- Converged when for all
- Expand: Orthogonalise the worst residual against via Modified Gram-Schmidt (MGS); append the new column to and
- Restart when : retain the best Ritz vectors
Modified Gram-Schmidt Orthogonalisation
Uses a sequential projection:
Returns None when the projected norm falls below tol (linear dependence).
Usage in OpenQuantum
The Davidson solver is used internally by refine_ts_hessian_via_davidson
to determine an initial TS-mode direction from finite-difference Hessian-vector
products, before the TS-BFGS update takes over.
It is also used by the Sella optimizer for adaptive eigenvalue correction.
Minimum Mode Following (MMF) Step
An alternative to P-RFO for saddle-point and TS searches that uses in the denominator instead of RFO roots. This makes the step well-conditioned even when the Hessian eigenvalues have not yet converged to the correct sign pattern during the early steps of a TS search.
Formula
Given the eigendecomposition (eigenvalues sorted ascending), the MMF step is:
The Lagrange multiplier is determined by bisection to satisfy . When the unconstrained step already satisfies the trust radius, is used directly.
Comparison with P-RFO
| Property | P-RFO | MMF |
|---|---|---|
| Denominator | RFO eigenvalues | |
| Well-defined when H all-positive? | No (RFO root may fail) | Yes |
| Formal convergence property | Quasi-Newton RFO | Trust-radius Newton |
| Recommended for | Well-converged TS saddle | Early TS steps, indefinite H |
Usage
Enable with Step mmf in the OPT section:
OPT
TransitionState true
Step mmf
...
END
When the Hessian eigenvalue signs are not yet correct (e.g., very early steps on a
flat surface), step=mmf is more robust than P-RFO because MMF uses
in the denominator.
Sella-Style Optimizer
The Sella optimizer (Algorithm sella or Sella task token) provides a
quasi-Newton geometry optimization backend with explicit Cartesian and
internal-coordinate execution paths, combining:
-
TS-BFGS Hessian update (maintains
ordernegative eigenvalues) -
P-RFO or MMF step computation
-
Sigma-based trust-radius schedule: multiplicative update driven by the model-quality ratio :
Condition Action (grow) (shrink) otherwise unchanged -
Adaptive Hessian eigenvalue correction: every
nsteps_per_diagsteps, the Hessian eigenspectrum is inspected and corrected if the number of negative eigenvalues deviates fromorder:- Too few negative eigenvalues → flip the smallest positive ones to −0.2 a.u.
- Too many negative eigenvalues → flip the least-negative ones to +0.2 a.u.
-
Initial TS Hessian: TS startup uses Davidson partial eigensolver refinement when available; if refinement is unavailable, fallback initialization sets the
ordersoftest modes to −0.2 a.u. so that P-RFO/MMF has a well-defined ascent direction from the first step. -
Coordinate-space support:
Coord cartesian: native Cartesian Sella engine pathCoord primitive: native internal-coordinate Sella pathCoord dlc/Coord tric: reduced-space internal step path
Default Parameters
| Parameter | TS (order=1) | Minimum (order=0) |
|---|---|---|
| Step method | P-RFO | P-RFO |
| Hessian update | TS-BFGS | MSP |
| delta0 | 0.10 | 0.30 |
| sigma_inc | 1.15 | 1.15 |
| sigma_dec | 0.65 | 0.90 |
| rho_inc | 1.035 | 1.035 |
| rho_dec | 5.0 | 100.0 |
| trust_max | 1.0 | 1.0 |
| nsteps_per_diag | 3 | — |
Relationship to Existing Optimizers
| Section form | Optimizer path |
|---|---|
Coord primitive | Berny IC optimizer (MSP+TRM) |
TransitionState true, Coord primitive | Berny IC optimizer + P-RFO (no TS-BFGS) |
task: SELLA … (or Algorithm sella) | Sella IC optimizer (TS-BFGS/MSP + P-RFO, σ-trust) |
task: TS SELLA … (or Algorithm sella, TransitionState true) | Sella TS optimizer (recommended for TS searches) |
Algorithm sella, TransitionState true, Coord dlc | Sella TS search in DLC space |
Usage
Sella minimum optimisation:
task: SELLA RHF STO-3G
GEOMETRY
...
END
Sella TS search with MMF step (more robust on flat surfaces):
task: TS SELLA RHF STO-3G
GEOMETRY
...
END
OPT
Step mmf
Coord dlc
SellaOrder 2
MaxCycle 100
END
Analytic Nuclear Hessians
The fully analytical RHF Hessian includes five contributions:
Contributions
| Term | Formula | Description |
|---|---|---|
| One-electron curvature: second derivatives of | ||
| contracted with | Overlap curvature | |
ERI curvature: second derivatives of two-electron integrals computed analytically via shell_quartet_eri_hessian (not finite-difference) | ||
| CPHF response: is the orbital response from iterative CPHF solution | ||
| Occupied-occupied reorthonormalization: includes both and contributions to |
UHF Hessian
For UHF, the Hessian uses a coupled 2×2 CPHF system (, , , spin blocks) with separate and densities.
Semi-Analytical Path
The semi-analytical (finite-difference of gradients) path propagates the selected ERI engine to all displaced SCF evaluations. This ensures consistency between the analytical and numerical Hessian paths.
Symmetry Acceleration
Analytical Hessians skip symmetry-equivalent shell quartets before expensive integral evaluation, matching GRAD2E SymShl. This provides significant speedup for symmetric molecules.
Usage
FREQ
Hessian analytical # or semi
...
END
The analytical Hessian is the default for RHF/UHF single-point frequency calculations.
DIIS Convergence Acceleration
Direct Inversion in the Iterative Subspace (DIIS) accelerates SCF convergence by extrapolating the Fock matrix:
where coefficients minimize the error vector norm subject to .
Error Vector
The error vector is the commutator:
At convergence, , so the commutator is zero.
DIIS Matrix Construction
Build the overlap matrix of error vectors:
Constrained Optimization
Find coefficients that minimize the error norm subject to :
This is solved via the Lagrangian system:
SCF Keywords
Control DIIS in the SCF section:
SCF
Diis 6 # subspace size (default 6)
NoDiis false # disable DIIS
...
END
GDIIS/GEDIIS — Geometry-Space DIIS for Optimization
OpenQuantum implements GDIIS (Gradient DIIS) and GEDIIS (Geometry-Dependent DIIS) for accelerating geometry optimization convergence. These methods extrapolate from previous geometry/gradient points to find a better step, analogous to how SCF-DIIS extrapolates from previous Fock matrices.
Comparison with SCF-DIIS
| Property | SCF-DIIS | GDIIS/GEDIIS |
|---|---|---|
| Space | Fock matrices | Geometry coordinates |
| Error vector | commutator | Negative gradient |
| Weighting | Error-norm | Energy-weighted (GEDIIS) |
| Subspace size | 6–10 | 2–6 |
| Convergence | Quadratic | Superlinear |
How GDIIS Works
Setup: At each optimization cycle, store the current geometry , gradient , and energy in a subspace of size (default ).
Error vectors: The negative gradient serves as the error vector:
At a minimum, the gradient should be zero, so the gradient measures how far we are from the solution.
DIIS matrix construction: Build the overlap matrix of error vectors:
Constrained optimization: Find coefficients that minimize the error norm subject to :
Extrapolated step: The DIIS-extrapolated geometry is:
How GEDIIS Works
GEDIIS extends GDIIS by weighting the DIIS matrix by energy differences, preferring steps that lower the energy. Three matrix types are tried in order:
1. RFO-DIIS (most robust)
Uses the quadratic step overlap as the DIIS matrix:
where is the RFO step from point . This requires computing the RFO step at each stored point, but produces the most reliable extrapolation.
2. EnDIS (Energy-DIIS)
Uses energy-difference weighting:
This matrix is positive-definite when all steps lower the energy, ensuring a well-defined extrapolation.
3. GDIIS (fallback)
Standard gradient-overlap matrix as described above.
Algorithm Flow
For each optimization cycle n:
1. Evaluate energy E_n and gradient g_n at current geometry q_n
2. Store (q_n, g_n, E_n) in DIIS subspace
3. If subspace size >= min_subspace (default 2):
a. Try RFO-DIIS: build A_ij = s_i · s_j, solve for c_i
b. If RFO-DIIS fails, try EnDIS
c. If EnDIS fails, fall back to GDIIS
4. Validate coefficients:
- Largest |c_i| must exceed threshold (default 0.1)
- Sum of negative coefficients must not exceed -1.0
5. Compute extrapolated geometry: q_DIIS = Σ_i c_i q_i
6. Use q_DIIS as the next geometry (or blend with TRM step)
Step Quality Checks
Cosine check: The angle between the extrapolated gradient and the last error vector should be small (cosine close to 1.0):
If , the DIIS step is rejected and TRM is used instead.
Step ratio check: The ratio should be reasonable. Extreme values indicate the extrapolation is unreliable.
Transition-State (TS) Mode
For TS optimization (TransitionState true), GEDIIS applies special weighting:
- The reaction coordinate gradient component is scaled by
ts_reaction_coord_weight - Minimum subspace size is 4 (vs 2 for minima)
- The extrapolation prefers steps that maintain the correct curvature direction
Usage
Enable with Diis true in the OPT section:
OPT
Diis true
DiisSize 4
...
END
Most effective for:
- Difficult optimizations near flat regions of the PES
- Multi-step convergences where the optimizer oscillates between geometries
- Large molecules where each SCF evaluation is expensive
GEDIIS typically reduces the number of optimization cycles by 20–40% compared to standard TRM for well-behaved systems.
Thermochemistry
Harmonic frequency analysis computes:
Zero-Point Energy
Thermal Corrections (at temperature )
| Component | Model |
|---|---|
| Vibrational | RRHO for all real modes () |
| Rotational | Classical rigid rotor with symmetry number |
| Translational | Sackur–Tetrode equation |
Entropy
Gibbs Free Energy
Symmetry Number
The symmetry number is automatically determined from the detected point group:
| Point Group | |
|---|---|
| 1 | |
| 12 | |
| 24 | |
| 1 | |
| 2 |
Frequency Scaling
Use the Scale keyword in the FREQ section to apply a scaling factor to
frequencies for ZPE and thermal corrections (e.g., Scale 0.9854 for B3LYP/6-31G*).
Usage
FREQ
Hessian analytical
Temperature 298.15
Pressure 1.0
Scale 1.0
SymmetryNumber 1 # auto-detected if not specified
...
END
Linear Molecule Detection
Linear molecule detection is automatic. The Molecule struct provides:
atomic_mass— atomic massestotal_mass— total molecular masscenter_of_mass— center of massinertia_tensor— moment of inertia tensoris_linear— linear molecule detection
Rotational entropy uses the rigid rotor formula with principal moments from
Molecule::inertia_tensor().
Density Functional Theory (DFT)
OpenQuantum solves the Kohn–Sham equations on an atom-centered numerical grid. The Kohn–Sham Fock operator replaces the wavefunction-theory exchange operator with a density-dependent exchange–correlation (XC) potential, and the total electronic energy is
where is the non-interacting kinetic energy, the classical Coulomb energy, the electron–nuclear attraction, the nuclear repulsion, and the exchange–correlation contribution evaluated by numerical quadrature.
Functional rungs
OpenQuantum supports four rungs of Jacob's ladder. The semilocal kernels read the spin densities , gradient invariants , and (for meta-GGAs) kinetic-energy densities at every quadrature point.
| Rung | Functional | Tag | Exact exchange | Dispersion |
|---|---|---|---|---|
| GGA | BP86 | bp86 | 0 | – |
| GGA | PBE | pbe, pbepbe | 0 | – |
| meta-GGA | TPSS | tpss | 0 | – |
| meta-GGA | M06-L | m06l | 0 | – |
| hybrid GGA | B3LYP | b3lyp | 0.20 | – |
| hybrid GGA | PBE0 | pbe0, pbe1pbe | 0.25 | – |
| hybrid meta-GGA | M06-2X | m062x | 0.54 | – |
| range-separated hybrid | ωB97X-D | wb97xd, w97xd | 0 (SR), 1.0 (LR), ω = 0.2 | D2 |
The exact-exchange fraction is wired through the SCF Fock builder. Range-separated exchange splits the Coulomb operator with the error function and contracts short- and long-range fractions independently against the same density.
M06-family correlation
M06-L and M06-2X correlation use the Voorhis–Scuseria (VS98) reduced-gradient working factor combined with a polynomial baseline:
with reduced gradients , , , self-interaction screen , and PW92 spin-resolved correlation . The polynomial baseline keeps the working factor positive at high reduced gradient, so M06 correlation integrates physically without any pointwise guard.
The working function is
The polynomial baseline has the form with (same-spin) and (opposite-spin).
Atom-centered grid
The molecular grid is a Becke-style sum of atom-local quadratures, each a direct product of a Mura–Knowles radial scheme and a Lebedev angular grid.
- Radial. Mura–Knowles maps the unit interval to via , with for the alkali/hydrogen column and elsewhere.
- Angular. Genuine Lebedev–Laikov grids of degree 3, 5, 7, 11, 17, 23, and 29 (point counts 6, 14, 26, 50, 110, 194, 302). The dispatcher routes any requested order to the largest exact Lebedev set that does not exceed the request; orders above 302 fall back to a Fibonacci-sphere distribution. Each Lebedev order is gated by an explicit spherical-moment exactness test.
- Pruning. Below the SuperFine level, near-nucleus and tail radial shells drop to lower angular orders, with denser tails kept for heavy atoms.
- Partition. A compact Stratmann–Scuseria-style cell function , built from a sixth-degree polynomial scaled by with a normalization, replaces Becke's iterated step. The cell weight is identically zero outside and goes smoothly to zero at the partition tail, which removes spurious tail points without further screening.
The integration loop screens AO shells whose product bound falls below and accumulates the XC potential matrix only over active AO pairs whose pointwise product (or gradient bound) exceeds .
Empirical dispersion
Dispersion-bearing functionals add an empirical pair correction to the total energy. OpenQuantum exposes three models with the same element coverage (Z = 1–54, including transition metals).
- D2. with a Fermi-type damping function. Used by ωB97X-D.
- D3 zero-damping. Adds an estimated term and uses the standard zero-damping factor for both and contributions.
- D4 charge-/coordination-scaled. Estimates per-atom partial charges from Pauling electronegativities, scales pair coefficients by local coordination numbers, and applies a rational damping form to and terms.
The model is selected via the functional metadata tag (D2, D3, D4) or
called explicitly through the dispersion API.
Restricted, unrestricted, and open-shell DFT
Closed-shell systems use a restricted Kohn–Sham (RKS) Fock build that contracts the spin-summed XC potential , , and against the AO basis. Open-shell systems use an unrestricted Kohn–Sham (UKS) Fock build with spin-resolved XC matrices for α and β. Both share the same grid construction and screening pipeline.
Solvent-coupled DFT
Kohn–Sham calculations with implicit solvation combine the XC potential and the reaction-field contribution in the same effective Fock matrix. OpenQuantum provides dedicated SCF entry points:
rks_scf_with_reaction_field— RKS with PCM/ddCOSMO/SMD solvent.uks_scf_with_reaction_field— UKS with PCM/ddCOSMO/SMD solvent.
At each SCF iteration the XC potential matrix (from grid quadrature) and the reaction-field contribution (from the cavity surface charges) are added to the core Hamiltonian alongside the Coulomb and exchange terms. The solvent-coupled SCF supports all functional rungs including range-separated hybrids.
Analytical gradients and Hessians with DFT
The analytic nuclear gradient for Kohn–Sham DFT includes the XC contribution
from grid differentiation alongside the HF-like terms (nuclear, Coulomb,
exchange). When solvent is active, the analytical gradient additionally
includes the PCM contributions (grad_nuc + grad_solver + grad_qv).
The analytical Hessian for DFT extends the CPHF formalism to include XC
response terms from grid differentiation. The XC contribution to the Hessian
contains both the first-order XC potential response (through the CPHF
equations) and the second-order XC kernel evaluated on the grid. With solvent,
the full PCM Hessian (hess_nuc + hess_solver + hess_qv) is added,
including the CPHF solvent response (AXPCM kernel).
Input File Format
OpenQuantum input files use a section-based format: a task: header followed by
SECTION … END blocks for each computational block.
General Structure
task: <run-type> <method> <basis>
MOLECULE
Charge <int> # default 0
Multiplicity <int> # default 1
Units Angstrom | Bohr # default Angstrom
END
GEOMETRY
<ELEMENT> <x> <y> <z> # one line per atom (Angstrom or Bohr)
...
END
BASIS
Library <name> # overrides task basis
Ecp <name> # optional ECP library
END
SCF
Algorithm rhf | uhf | rohf
Guess core | huckel | sad | read
MaxCycle <int>
Conver <int> # 10^(-N) tolerance
Diis <int> # subspace size
Shift <float> # static level shift, Hartree
Damp <float> # density damping factor
Fermi <float> # Fermi broadening
Direct true | false
Save true | false
Restart true | false
Tight true | false
QC true | false
XQC | YQC | SD | SSD
MaxRot <int>
MaxNr <int>
FullLinear true | false
OldQC true | false
END
INT
Acc2E <int> # ERI threshold = 10^(-N), default 12
UltraFine true | false
Eri auto | md | sp | rys
NoSymm true | false
Grid Coarse | Fine | UltraFine
Relativistic dk | zora | none
FcMod <int> # freeze-core shell count (per atom)
Semiempirical <name>
END
OPT
Algorithm bfgs | berny | rberny | sella
Coord cartesian | primitive | dlc | hdlc | tric | tric-p
MaxCycle <int>
Trust <float> # initial trust radius, Bohr
TMax <float> # max trust radius, Bohr
NoTrust true | false # disable TRM level-shifted Newton
TransitionState true | false
IRC true | false
IRCDir +1 | -1
NEB true | false
Images <int> # number of NEB images
SellaOrder <int> # 1 = Hessian, 2 = Hessian + gradient
Step trm | prfo | mmf
Update bfgs | psb | ms | bofill | sr1 | dfp | bfgs_powell | ts-bfgs
Diis true | false # GEDIIS
DiisSize <int>
Symmetry true | false # exploit point-group symmetry in IC build
OptSymmetry true | false # enforce symmetry along the path
NoStep true | false
Hessian analytical | semi
NoCartHessian true | false
CartHessian <matrix> # inline Cartesian Hessian (text)
Rigid true | false # require coord=tric
RemoveTr true | false # require coord=dlc/hdlc/tric
ConMethod 0 | 1
Connect true | false
AddCart true | false
ConnectIsolated true | false
Primitive true | false # alias for coord=primitive
PrimStep true | false # step projection in primitive IC
Gauss default | loose | tight
Tighten <int> # tighten all criteria by 10^(-N)
MaxDisplacement <float>
Constraints <clause-list>
END
FREQ
Hessian analytical | semi
Numerical true | false
Step <float> # finite-difference step, Bohr
Temperature <float> # Kelvin (default 298.15)
Pressure <float> # atm (default 1.0)
Scale <float> # ZPE / thermal frequency scaling
SymmetryNumber <int>
Read <file> # read Hessian from file
Save true | false # write Hessian to checkpoint
END
MP2
Scaling none | os | ss | osss
OS <float> # same-spin scale factor
SS <float> # opposite-spin scale factor
DF true | false # density-fitting / RI-MP2
Aux <name> # auxiliary basis set
KeepHalf true | false
DiscardVV true | false
Skip <list> # comma-separated skip tokens
Acc2E <int>
FreezeCore true | false
END
CC
Triples none | st | pt | f # perturbative triples model
FreezeCore true | false
DropVirt <float> # drop virtual orbital cutoff
Conv <int> # 10^(-N) convergence
MaxIter <int>
Diis true | false
DiisStart <int>
Shift <float>
Read <file> # read amplitudes from file
Skip <list>
Acc2E <int>
Brueckner true | false
END
SYMMETRY
Tolerance <float> # default 1e-3 Å
Disable true | false
END
Rules
- The
task:line sets the run-type token (RHF,UHF,ROHF,OPT,FREQ,MP2,CCSD,CCSD(T), etc.) and a default method/basis pair. Atask:line is required. - Section names are case-insensitive. Each section ends with
END(orend) on its own line. MOLECULEandGEOMETRYare required; all other sections are optional and only need to be present when their non-default keywords are required.- Lines inside a section are
key valuepairs (whitespace-separated, comment lines start with#or!, blank lines are ignored).
Reserved Section Names
| Section | Purpose |
|---|---|
MOLECULE | Charge, multiplicity, coordinate units |
GEOMETRY | Atom list (required) |
BASIS | Basis set and ECP overrides |
SCF | Method, guess, DIIS, level shift, QC, save/restart |
INT | ERI threshold, engine, symmetry, grid, relativistic, semiempirical |
OPT | Geometry optimization, TS, IRC, NEB, coordinate model, constraints |
FREQ | Hessian, finite-difference step, thermochemistry |
MP2 | Spin scaling, density fitting, frozen core, MP2 options |
CC | CCSD/CCSD(T) convergence, frozen core, Brueckner, read/save |
SOLVATION | Implicit solvent model, dielectric, cavity settings |
SYMMETRY | Symmetry tolerance and toggle |
Example
task: OPT RHF 6-31G*
MOLECULE
Charge 0
Multiplicity 1
Units Angstrom
END
GEOMETRY
O 0.000000 0.000000 0.117369
H 0.756950 0.000000 -0.469476
H -0.756950 0.000000 -0.469476
END
OPT
Algorithm berny
Coord tric
MaxCycle 100
END
Section Reference
The MOLECULE, GEOMETRY, BASIS, SCF, DFT, INT, OPT, FREQ, MP2, CC,
SOLVATION, SYMMETRY, and CONTROL sections control every aspect of an OpenQuantum
calculation. Each section is a named block terminated by END (case-insensitive).
Lines inside a section are key value pairs (whitespace-separated). Comments start
with # or !. Blank lines are ignored. Most keywords accept aliases and alternative
spellings.
Use the links below for detailed keyword tables and per-section examples.
MOLECULE Section
The MOLECULE section specifies molecular-level properties.
Keywords
| Keyword | Type | Default | Description |
|---|---|---|---|
Charge | integer | 0 | Molecular charge |
Multiplicity | integer | 1 | Spin multiplicity (2S+1) |
Units | Angstrom | Bohr | Angstrom | Coordinate units for geometry |
Example
MOLECULE
Charge 0
Multiplicity 1
Units Angstrom
END
For charged systems:
MOLECULE
Charge -1
Multiplicity 2
Units Bohr
END
Notes
- The
Unitssetting applies to theGEOMETRYsection coordinates. ChargeandMultiplicitycan also be specified on thetask:line or in theGEOMETRYcomment line (legacy), but theMOLECULEsection is the preferred way.
GEOMETRY Section
The GEOMETRY section contains the atomic coordinates. It is required.
Format
GEOMETRY
<ELEMENT> <x> <y> <z>
...
END
- One line per atom
- Element symbol (case-insensitive:
H,h,C,c, etc.) - Coordinates in Angstrom or Bohr (set by
MOLECULE Unitsortask:line) - Whitespace-separated
Example
GEOMETRY
O 0.000000 0.000000 0.117369
H 0.756950 0.000000 -0.469476
H -0.756950 0.000000 -0.469476
END
Multiple Geometries
For NEB calculations, provide two geometries separated by a blank line:
GEOMETRY
# Start geometry
O 0.000000 0.000000 0.100000
H 0.750000 0.000000 -0.450000
H -0.750000 0.000000 -0.450000
# End geometry
O 0.000000 0.000000 0.100000
H 0.750000 0.100000 -0.450000
H -0.750000 -0.100000 -0.450000
END
The Images N keyword in the OPT section controls the number of interpolating images.
Notes
- The
GEOMETRYblock must contain at least one atom. - Coordinates default to Angstrom unless
Units Bohris specified inMOLECULE. - Z-matrix format is not supported in the section-based input; use the legacy route-card format for Z-matrix input.
BASIS Section
The BASIS section overrides the basis set specified on the task: line and
attaches ECP libraries.
Keywords
| Keyword | Type | Description |
|---|---|---|
Library | string | Basis set name (e.g., def2-TZVP, cc-pVDZ) |
Ecp | string | ECP library name (e.g., lanl2dz) |
Example
BASIS
Library def2-TZVP
Ecp lanl2dz
END
Notes
- The
Librarykeyword overrides the basis set from thetask:line. - The
Ecpfield is the supported way to attach an ECP library to a calculation. - See Basis Sets Reference for the complete list of available basis sets.
- ECP libraries (LANL2DZ, Stuttgart, etc.) are loaded automatically when
Ecpis set.
SCF Section
The SCF section controls the Hartree–Fock self-consistent field procedure.
Keywords
| Keyword | Type | Default | Description |
|---|---|---|---|
Algorithm | rhf | uhf | rohf | from task: | SCF method |
Guess | core | huckel | sad | read | sad | Initial MO guess |
MaxCycle | integer | 100 | Maximum SCF iterations |
Conver | integer | 8 | Convergence threshold = 10⁻ᴺ |
Diis | integer | 6 | DIIS subspace size |
NoDiis | boolean | false | Disable DIIS |
Shift | float | 0.0 | Static level shift (Hartree) |
VShift | boolean | false | Dynamic virtual orbital level shift |
Damp | float | 0.0 | Density damping factor |
NoDamp | boolean | false | Turn damping off |
Fermi | float | 0.0 | Fermi broadening temperature (Hartree) |
Direct | boolean | false | Direct SCF (recompute ERIs each iteration) |
Save | boolean | false | Write checkpoint after SCF |
Restart | boolean | false | Read initial guess from checkpoint |
Tight | boolean | false | Tighter convergence preset |
SD | boolean | false | Steepest Descent SCF |
SSD | boolean | false | Scaled Steepest Descent SCF |
MaxRot | integer | 512 | Max QC-SCF macroiterations |
MaxNr | float | 0.01 | NR gradient threshold |
FullLinear | boolean | false | Full 1D line search in QC-SCF |
OldQC | boolean | false | Old polynomial-only QC line search |
Examples
Standard RHF:
SCF
Algorithm rhf
MaxCycle 100
Conver 8
END
Tight convergence with custom DIIS:
SCF
MaxCycle 200
Conver 10
Diis 10
END
Level shift for difficult convergence:
SCF
Shift 0.5
MaxCycle 150
END
Direct SCF for large molecules:
SCF
Direct true
MaxCycle 100
END
Checkpointing:
SCF
Save true
MaxCycle 100
END
To restart: set Restart true in a follow-up job.
Notes
- The
Algorithmkeyword inSCFis typically redundant with thetask:line (e.g.,task: RHF STO-3G), but can be used to override it. Guess sad(Superposition of Atomic Densities) is the default and recommended initial guess for most systems.- Direct SCF recomputes ERIs each iteration, trading memory for CPU time.
- QC-SCF is a second-order optimization method that directly minimizes the energy
with respect to orbital rotations. Use
XQCfor DIIS-first with QC fallback.
DFT Section
The DFT section requests a Kohn–Sham DFT calculation and selects the
exchange–correlation functional and numerical grid. If no SCF Algorithm is
provided, DFT defaults to a restricted reference for singlets and uses the
molecule multiplicity to dispatch open-shell calculations.
Keywords
| Keyword | Aliases | Type | Description |
|---|---|---|---|
Functional | XC, Exchange, Correlation, Method | functional name | Selects the DFT functional |
Grid | GridType, Grid_Type | preset or RRRAAA | Selects the atom-centered XC grid |
Lines without a key are also accepted, so PBE0 and UltraFine inside the
section are equivalent to Functional PBE0 and Grid UltraFine.
Functional names
| Functional | Accepted names | Notes |
|---|---|---|
| BP86 | BP86, B88P86 | pure GGA |
| PBE | PBE, PBEPBE | pure GGA |
| TPSS | TPSS | pure meta-GGA |
| M06-L | M06L, M06-L | pure meta-GGA |
| B3LYP | B3LYP | hybrid GGA, 20% exact exchange |
| PBE0 | PBE0, PBE1PBE | hybrid GGA, 25% exact exchange |
| M06-2X | M062X, M06-2X | hybrid meta-GGA, 54% exact exchange |
| ωB97X-D | WB97XD, W97XD, OmegaB97XD, ωB97X-D | range-separated hybrid with D2 dispersion |
Function names are case-insensitive; hyphens, underscores, and parentheses are ignored during parsing.
Grid names
| Grid | Meaning |
|---|---|
Coarse, CoarseGrid, Pass0Grid | Small smoke-test grid |
SG1, SG1Grid | SG1-style route alias; maps through integral grid options |
Medium, MediumGrid | Medium DFT grid |
Fine, FineGrid | Fine DFT grid |
UltraFine, UltraFineGrid | Larger production grid |
SuperFine, SuperFineGrid | Largest built-in preset |
RRRAAA | Custom radial/angular count, e.g. 099302 = 99 radial × 302 angular |
Custom grid values are six digits: first three digits are radial points, last three are the requested angular order. Requested angular orders up to 302 use genuine Lebedev–Laikov grids where available; requests above 302 use the Fibonacci-sphere fallback.
Examples
PBE0 with UltraFine grid:
title: Water PBE0 DFT
MOLECULE
Charge 0
Multiplicity 1
Units Angstrom
END
task: STO-3G
DFT
Functional PBE0
Grid UltraFine
END
SCF
MaxCycle 100
Conver 8
END
GEOMETRY
O 0.000000 0.000000 0.117000
H 0.000000 0.755000 -0.471000
H 0.000000 -0.755000 -0.471000
END
M06-L with a custom 99 × 302 grid:
title: H2 M06-L custom grid
task: STO-3G
DFT
M06-L
Grid 099302
END
SCF
MaxCycle 80
Conver 8
END
GEOMETRY
H 0.000000 0.000000 0.000000
H 0.000000 0.000000 0.740000
END
Notes
- DFT calculations still use the
SCFsection for convergence controls such asMaxCycle,Conver,Direct, checkpointing, and damping. - Exact exchange in hybrid and range-separated functionals increases cost because exchange matrix builds require electron-repulsion integrals.
- Meta-GGA functionals (
TPSS,M06-L,M06-2X) require kinetic-energy density on the grid and are more sensitive to grid quality than GGAs.
INT Section
The INT section controls integral computation: ERI screening, engine selection,
symmetry, and grid settings.
Keywords
| Keyword | Type | Default | Description |
|---|---|---|---|
Acc2E | integer | 12 | ERI screening threshold = 10⁻ᴺ |
UltraFine | boolean | false | Use larger integration grid |
Eri | auto | md | sp | rys | auto | ERI engine selection |
NoSymm | boolean | false | Disable point-group symmetry |
Grid | Coarse | Fine | UltraFine | Fine | DFT integration grid (future) |
Relativistic | dk | zora | none | none | Relativistic Hamiltonian (future) |
FcMod | integer | 0 | Freeze-core shell count (per atom) |
Semiempirical | string | — | Activate a semiempirical method |
ERI Engine Selection
| Engine | Eri value | Best for | Notes |
|---|---|---|---|
| McMurchie–Davidson | md | All systems (default) | Universal, correct for all angular momenta |
| SP Fast Paths | sp / spfast | Organic (H,C,N,O,F) | 10× ERI speedup for S/P shells only |
| Rys Quadrature | rys / rysquadrature | Transition metals, D/F+ | Rys-first with MD fallback |
| Auto | auto | General use | Fast SP + Rys routing, MD fallback |
The selected engine applies to all ERI computation paths: in-core integral build, direct SCF, analytical nuclear gradients, fully analytical Hessians, and semi-analytical (FD) Hessians.
Examples
Recommended (auto):
INT
Eri auto
END
Force McMurchie–Davidson (baseline):
INT
Eri md
END
SP fast paths for organic molecules:
INT
Eri sp
END
Rys quadrature for transition metals:
INT
Eri rys
END
Disable symmetry:
INT
NoSymm true
END
Tighter ERI screening:
INT
Acc2E 14
END
DFT integration grid (future):
INT
Grid UltraFine
END
Notes
Acc2E 12(10⁻¹²) is the default ERI screening threshold.- Symmetry is enabled by default.
NoSymm trueskips point-group ERI screening and prints all orbital irreps asA(C1 symmetry). - The 8-fold permutational symmetry of ERIs is always applied regardless of
NoSymm. - The
Gridkeyword controls the DFT numerical integration grid (for future DFT support).
OPT Section
The OPT section controls geometry optimization, transition-state search, IRC,
NEB, coordinate models, and constraints.
Keywords
| Keyword | Type | Default | Description |
|---|---|---|---|
Algorithm | bfgs | berny | rberny | sella | geometric | berny | Optimizer backend |
Coord | cartesian | primitive | dlc | hdlc | tric | tric-p | cartesian | Internal-coordinate model |
MaxCycle | integer | 100 | Maximum optimization cycles |
Trust | float | 0.3 | Initial trust radius (Bohr) |
TMax | float | 0.5 | Maximum trust radius (Bohr) |
NoTrust | boolean | false | Disable TRM level-shifted Newton step |
TransitionState | boolean | false | Search for first-order saddle point |
IRC | boolean | false | Intrinsic reaction coordinate follow |
IRCDir | +1 | -1 | both | Restrict IRC direction |
NEB | boolean | false | Nudged elastic band |
Images | integer | 8 | Number of NEB images |
SellaOrder | 1 | 2 | 1 | Sella gradient order (1 = Hessian-only) |
Step | trm | prfo | mmf | trm | Step type (TRM, P-RFO, or MMF) |
Update | bfgs | psb | ms | bofill | sr1 | dfp | bfgs_powell | ts-bfgs | msp / ts-bfgs | Hessian update formula |
Diis | boolean | false | Enable GEDIIS |
DiisSize | integer | 6 | GEDIIS subspace size |
Symmetry | boolean | true | Exploit point-group symmetry in IC build |
MOGuess | boolean | true | Reuse previous cycle's orbitals as SCF guess (warm start) |
OptSymmetry | boolean | false | Enforce symmetry along the optimisation path |
NoStep | boolean | false | Run optimizer without taking a step (debug) |
Hessian | analytical | semi | analytical | Hessian source for IC initialisation |
NoCartHessian | boolean | false | Ignore any inline Cartesian Hessian |
CartHessian | matrix | — | Inline Cartesian Hessian matrix |
Rigid | boolean | false | Rigid-body component removal (TRIC only) |
RemoveTr | boolean | false | Remove TR modes (DLC/HDLC/TRIC only) |
ConMethod | 0 | 1 | 1 | Delocalised construction method |
Connect | boolean | false | Reconnect connectivity graph at every step |
AddCart | boolean | false | Add Cartesian components to IC basis |
ConnectIsolated | boolean | false | Connect isolated fragments |
Primitive | boolean | false | Alias for Coord primitive |
PrimStep | boolean | true | Step projection in primitive IC space |
Gauss | default | loose | tight | default | Convergence preset |
Tighten | integer | 0 | Tighten all criteria by 10⁻ᴺ |
MaxDisplacement | float | 0.5 | Max allowed step length |
Constraints | clause-list | — | Geometric constraints |
Dihedral | boolean | true | (RBerny only) Include dihedral angles in the IC set |
SuperWeakDih | boolean | false | (RBerny only) Use super-weak dihedral force constants |
EnergyNoise | float | 2e-8 | (RBerny only) Energy-noise floor for trust-radius updates |
Algorithm & Coordinate Model
Algorithm | Description |
|---|---|
bfgs | Cartesian BFGS optimizer |
berny | Berny RFO with internal coordinates |
rberny | Rust Berny backend (native IC implementation) |
sella | Saddle-point-aware IC optimizer (TS-BFGS) |
geometric | GeomeTRIC native-TRIC quasi-Newton optimizer (RS-P-RFO for TS); aliases geomet, tric |
Coord | Description |
|---|---|
cartesian | Direct 3N optimisation |
primitive | Full redundant primitive IC set |
dlc | Non-redundant delocalised basis |
hdlc | Hybrid DLC with Cartesian components |
tric | TRIC (translation/rotation removed) |
tric-p | TRIC with projected Cartesian components |
Hessian Updates
| Update | Description | Note |
|----------|-------------|
| bfgs | Standard BFGS (minima) | working on |
| psb | Powell–Symmetric–Broyden, rank-2 (TS) | working on |
| ms | Murtagh–Sargent, rank-1 (TS) | working on |
| bofill | φ·PSB + (1-φ)·MS, blends PSB and MS (TS) | working on |
| sr1 | Symmetric rank-1 (naturally indefinite) | working on |
| dfp | Davidon–Fletcher–Powell (PD) | working on |
| bfgs_powell | Auto: BFGS for minima, Bofill for TS | working on |
| ts-bfgs | TS-BFGS: BFGS in |H| space (saddle points) | working on |
Default: MSP for minima, TS-BFGS for TS (Sella), Bofill for TS (Berny).
Step Types
Step | Description |
|---|---|
trm | Trust-region (level-shifted Newton) |
prfo | Partitioned RFO eigenvector following (TS) |
mmf | Minimum-mode following (flat surfaces, TS) |
RBerny Backend Controls
When the optimizer backend is Algorithm rberny (or the RBerny task token),
three additional backend-specific keywords are recognised in the OPT section.
These fine-tune how the RBerny engine constructs its internal coordinates
and manages the trust-radius update.
Dihedral
Controls whether dihedral (torsion) angles are included in the primitive
internal-coordinate set. When set to false, dihedrals are omitted entirely,
reducing the total coordinate count and removing torsional coupling from the
Lindh Hessian guess.
OPT
Algorithm rberny
Dihedral false
END
SuperWeakDih
When enabled, dihedral angles that would normally receive a "weak" force constant (≈ 0.1 scaling factor in the Lindh Hessian guess) are instead treated as "superweak" (≈ 0.01 scaling factor). This gives very soft initial force constants for floppy torsional modes, preventing the first few optimisation steps from over‑correcting large‑amplitude dihedral motion.
OPT
Algorithm rberny
SuperWeakDih true
END
EnergyNoise
Estimated energy precision in Hartree. The trust‑radius update uses a noise
floor of 10 × EnergyNoise: when the predicted energy change falls below
this threshold the optimizer treats the change as numerically unreliable and
adjusts the trust radius conservatively (neither growing nor shrinking it
aggressively). Useful on flat potential‑energy surfaces where small energy
differences can be dominated by numerical noise.
OPT
Algorithm rberny
EnergyNoise 1e-7
END
FREQ Section
The FREQ section controls harmonic frequency analysis and thermochemistry.
Keywords
| Keyword | Type | Default | Description |
|---|---|---|---|
Hessian | analytical | semi | analytical | Hessian source (default: analytical for RHF/UHF) |
Numerical | boolean | false | Force finite-difference Hessian |
Step | float | 0.01 | Finite-difference step (Bohr) |
Temperature | float | 298.15 | Temperature for thermochemistry (K) |
Pressure | float | 1.0 | Pressure for thermochemistry (atm) |
Scale | float | 1.0 | Frequency scaling factor for ZPE / thermal corrections |
SymmetryNumber | integer | auto | Rotational symmetry number (auto-detected) |
Read | file | — | Read Hessian from checkpoint file |
Save | boolean | false | Write Hessian to checkpoint after computation |
Examples
Standard frequency analysis:
FREQ
Hessian analytical
Temperature 298.15
Pressure 1.0
END
Force numerical Hessian:
FREQ
Numerical true
Step 0.01
END
Read Hessian from checkpoint:
FREQ
Read myjob.oqd
END
Custom thermochemistry conditions:
FREQ
Temperature 350.0
Pressure 1.0
Scale 0.9854
END
Custom symmetry number:
FREQ
SymmetryNumber 2
END
Notes
- The analytical Hessian is the default for RHF/UHF single-point frequency calculations.
Hessian semiforces finite-difference of gradients (slower but can be used for methods without analytical Hessian).- The symmetry number is auto-detected from the point group. Override with
SymmetryNumber Nif needed. - Frequency scaling factor applies to ZPE and all thermal corrections.
- Temperature and pressure affect thermal corrections and entropy.
MP2 Section
The MP2 section controls Møller–Plesset second-order correlation energy calculations.
Keywords
| Keyword | Type | Default | Description |
|---|---|---|---|
Scaling | none | scs | sos | none | Spin-component scaling |
OS | float | scaling default | Opposite-spin correlation scale factor |
SS | float | scaling default | Same-spin correlation scale factor |
DF | boolean | false | Density-fitting / RI-MP2 request |
Aux | string | — | Auxiliary basis set for DF-MP2 |
KeepHalf | boolean | true | Keep half-transformed AO integrals |
DiscardVV | boolean | false | Discard virtual–virtual blocks (DF only) |
Skip | boolean | false | Skip MP2 evaluation |
FreezeCore | false | true | auto | integer | false | Frozen-core policy |
Spin-Component Scaling
Scaling | Description |
|---|---|
none | Canonical MP2 (no scaling) |
scs | SCS-MP2 defaults: OS = 1.2, SS = 1/3 |
sos | SOS-MP2 defaults: OS = 1.3, SS = 0.0 |
Use OS and SS to set custom scale factors.
Frozen Core
FreezeCore false,Full, orNoFCcorrelates all occupied orbitals.FreezeCore trueorFreezeCore autofreezes a chemically standard core from atomic numbers.FreezeCore Nfreezes exactlyNlowest occupied orbitals.
Examples
Canonical all-electron MP2:
MP2
Scaling none
FreezeCore false
END
Spin-scaled MP2 (SCS-MP2):
MP2
Scaling scs
FreezeCore false
END
SOS-MP2:
MP2
Scaling sos
END
DF-MP2 request with auxiliary basis:
MP2
DF true
Aux def2-TZVP-RI
END
Frozen-core MP2:
MP2
FreezeCore auto
END
Notes
- MP2 currently computes in-core
TwoElectronIntegralsfor the AO-to-MO transform, even whendirect_scfis enabled for SCF. - The driver reports occupied, correlated occupied, virtual, and frozen-core counts.
DFandAuxare parsed for future RI-MP2 support; the current production path is canonical in-core MP2.
CC Section
The CC section controls CCSD and CCSD(T) coupled-cluster calculations.
Keywords
| Keyword | Type | Default | Description |
|---|---|---|---|
Triples | none | st | pt | f | st | Perturbative-triples model |
FreezeCore | boolean | false | Correlate only valence electrons |
DropVirt | float | 0.0 | Drop virtual orbitals below threshold |
Conv | integer | 8 | Convergence threshold = 10⁻ᴺ |
MaxIter | integer | 50 | Maximum CC iterations |
Diis | boolean | true | Enable CC-DIIS |
DiisStart | integer | 2 | First iteration to use DIIS |
Shift | float | 0.0 | Static level shift for amplitude update |
Read | file | — | Read amplitudes from checkpoint |
Skip | list | — | Comma-separated skip tokens |
Acc2E | integer | from INT | ERI threshold override for CC |
Brueckner | boolean | false | Brueckner CC (BCCD/BCCD(T)) |
Triples Models
Triples | Description |
|---|---|
none | CCSD only (no triples) |
st | Standard CCSD(T) (non-iterative) |
pt | CCSD(2)_T (iterative) |
f | Full CCSDT (iterative, expensive) |
CCSD(T) uses Triples st by default.
Examples
CCSD(T) standard:
CC
Triples st
FreezeCore false
END
CCSD only (no triples):
CC
Triples none
END
Tighter convergence:
CC
Conv 8
MaxIter 80
Diis true
DiisStart 3
Shift 0.2
FreezeCore false
END
Frozen-core CCSD(T):
CC
Triples st
FreezeCore true
END
Brueckner CCSD(T):
CC
Triples st
Brueckner true
END
Notes
- CC always computes in-core
TwoElectronIntegralsfor the AO→MO transform, even whendirect_scfis enabled for SCF. DiisStartcontrols when DIIS acceleration begins (default: iteration 2).DropVirtdiscards virtual orbitals with orbital energy above the threshold.Readloads amplitudes from a checkpoint for restart.Bruecknerenables BCCD/BCCD(T) (orbital-optimized CC).
SOLVATION Section
Controls implicit solvation. Optional; when absent the calculation runs in vacuo.
Syntax
SOLVATION
Model cpcm | cosmo | iefpcm | ssvpe | ddcosmo | ddpcm | smd
Dielectric <float> # static dielectric constant ε
Solvent <name> # named solvent (required for SMD)
Surface swig | iswig # cavity discretization
Lebedev <int> # angular grid points per atom
VdwScale <float> # scaling factor for vdW radii
ProbeRadius <float> # probe radius added to vdW radii (Å)
MaxCycle <int> # solvent response iterations
Conver <float> # solvent response convergence threshold
Frozen true | false # freeze solvent during post-SCF
Equilibrium true | false # equilibrium solvation for TD-DFT
END
Keyword Reference
| Keyword | Values | Default | Description |
|---|---|---|---|
Model | cpcm, cosmo, iefpcm, ssvpe, ddcosmo, ddpcm, smd | cpcm | Electrostatic solvent model |
Dielectric | float | 78.3553 (water) | Static dielectric constant |
Solvent | string | — | Named solvent for tabulated parameters (required for SMD) |
Surface | swig, iswig | swig | Cavity surface discretization |
Lebedev | int | 302 | Angular Lebedev quadrature points per atom |
VdwScale | float | 1.2 | Scaling of van der Waals radii |
ProbeRadius | float (Å) | 0.0 | Probe radius added to vdW radii |
MaxCycle | int | 20 | Maximum solvent response iterations |
Conver | float | 1e-7 | Solvent response convergence threshold |
Frozen | bool | false | Keep solvent frozen during post-SCF |
Equilibrium | bool | false | Equilibrium (not non-equilibrium) solvation |
Electrostatic Models
| Model | Full Name | K Matrix | R Matrix | ECP | Analytical Gradient | Analytical Hessian |
|---|---|---|---|---|---|---|
| C-PCM | Conductor-like PCM | S | −f·I | ✓ | ✓ | ✓ |
| COSMO | Conductor-like Screening | S | −f·I (f=(ε−1)/(ε+½)) | ✓ | ✓ | ✓ |
| IEF-PCM | Integral Equation Formalism PCM | S − f/(2π)·D·A·S | −f·[I − D·A/(2π)] | ✓ | ✓ | ✓ |
| SS(V)PE | Surface & Simulation of Vol. Pol. | symm. D·A·S | −f·[I − D·A/(2π)] | ✓ | ✓ | ✓ |
| ddCOSMO | Domain-decomposition COSMO | L matrix (spherical harmonics) | — | ✗ | ✓ * | ✗ |
| ddPCM | Domain-decomposition PCM | L + A matrices | — | ✗ | ✓ * | ✗ |
| SMD | Solvation Model based on Density | IEF-PCM on SMD radii | + CDS | ✓ | ✓ | ✓ |
- ddCOSMO/ddPCM gradient uses adjoint-Lagrangian formulation; the l=0 block is regularized with ε = 1e-3 to stabilize the L-matrix solve.
Model Overview
All seven solvation models belong to one of three engine families. Choose the model that best fits your needs:
| Model | Family | Engine | Surface Mesh | Solvent Source | ECP | Gradient | Hessian |
|---|---|---|---|---|---|---|---|
| C-PCM | PCM | PcmSolver | ✓ (SWIG/ISWIG) | lookup table + custom ε | ✓ | ✓ | ✓ |
| COSMO | PCM | PcmSolver | ✓ (SWIG/ISWIG) | lookup table + custom ε | ✓ | ✓ | ✓ |
| IEF-PCM | PCM | PcmSolver | ✓ (SWIG/ISWIG) | lookup table + custom ε | ✓ | ✓ | ✓ |
| SS(V)PE | PCM | PcmSolver | ✓ (SWIG/ISWIG) | lookup table + custom ε | ✓ | ✓ | ✓ |
| ddCOSMO | Domain-Decomposition | DdSolver | ✗ (atom spheres) | lookup table + custom ε | ✗ | ✓ | ✗ |
| ddPCM | Domain-Decomposition | DdSolver | ✗ (atom spheres) | lookup table + custom ε | ✗ | ✓ | ✗ |
| SMD | SMD | PcmSolver + SmdCds | ✓ (SWIG/ISWIG) | SMD database (179 solvents) ** | ✓ | ✓ | ✓ |
ddCOSMO/ddPCM gradients use the adjoint-Lagrangian formulation. The l=0 block is regularized with ε = 1e-3 to stabilise the L-matrix solve.
SMD requires a named solvent from the SMD database. A bare
DielectricwithoutSolventwill construct IEF-PCM electrostatics but cannot compute the CDS term, and the calculation will abort.
Per-Model Guides
Each sub-section lists the keywords that actually take effect for that model, how the solvent is resolved, and any model-specific restrictions.
C-PCM (Conductor-like PCM)
The default model. Treats the solvent as a conductor with screening factor
f = (ε − 1) / ε.
Supported keywords:
| Keyword | Effect | Default |
|---|---|---|
Dielectric / eps | Static dielectric constant | 78.3553 (water) |
Solvent / name | Named solvent for ε lookup | — |
Surface | Cavity discretisation: swig or iswig | swig |
Lebedev | Angular Lebedev points per atom | 302 |
VdwScale | Scaling factor for vdW radii | 1.2 |
ProbeRadius | Probe radius added to vdW radii (Å) | 0.0 |
MaxCycle | Solvent response iterations | 20 |
Conver | Solvent response convergence threshold | 1e-7 |
Frozen | Freeze solvent during post-SCF | false |
Equilibrium | Equilibrium (not non-equilibrium) solvation | false |
Solvent resolution:
- If
Solventis given, the dielectric constant is looked up from the built-in solvent table (20 common solvents; see below). If the name is not found, the default78.3553is used silently. - An explicit
Dielectricoverrides any solvent lookup. - When neither
SolventnorDielectricis given, the default78.3553(water) is used.
Examples:
Using a named solvent:
task: SCF RHF/STO-3G
MOLECULE
Charge 0
Multiplicity 1
Units Angstrom
END
GEOMETRY
O 0.000000 0.000000 0.117369
H 0.756950 0.000000 -0.469476
H -0.756950 0.000000 -0.469476
END
SOLVATION
Model cpcm
Solvent water
END
Using a custom dielectric without a named solvent:
task: SCF RHF/STO-3G
MOLECULE
Charge 0
Multiplicity 1
Units Angstrom
END
GEOMETRY
O 0.000000 0.000000 0.117369
H 0.756950 0.000000 -0.469476
H -0.756950 0.000000 -0.469476
END
SOLVATION
Model cpcm
Dielectric 46.826
END
COSMO (Conductor-like Screening Model)
Same keyword set as C-PCM, but uses the COSMO screening factor
f = (ε − 1) / (ε + ½).
Supported keywords: Same as C-PCM.
Example:
task: SCF UHF/6-31G(d)
MOLECULE
Charge 0
Multiplicity 1
Units Angstrom
END
GEOMETRY
O 0.000000 0.000000 0.117369
H 0.756950 0.000000 -0.469476
H -0.756950 0.000000 -0.469476
END
SOLVATION
Model cosmo
Solvent acetonitrile
END
IEF-PCM (Integral Equation Formalism PCM)
Full boundary-element PCM using the S (screened Coulomb) and D (dielectric response) matrices. This is the electrostatic engine used internally when SMD is selected.
Supported keywords: Same as C-PCM.
Example:
task: SCF RHF/6-31+G(d,p)
MOLECULE
Charge 0
Multiplicity 1
Units Angstrom
END
GEOMETRY
O 0.000000 0.000000 0.117369
H 0.756950 0.000000 -0.469476
H -0.756950 0.000000 -0.469476
END
SOLVATION
Model iefpcm
Solvent tetrahydrofuran
Surface iswig
END
SS(V)PE (Surface and Simulation of Volume Polarisation for Electrostatics)
Same keyword set as C-PCM, but uses a symmetrised D·A·S formulation to better approximate volume polarisation effects.
Supported keywords: Same as C-PCM.
Example:
SOLVATION
Model ssvpe
Solvent dichloromethane
Lebedev 590
END
ddCOSMO (Domain-Decomposition COSMO)
Uses atom-centred real-spherical-harmonic expansions instead of a cavity surface mesh. This avoids the cost of surface matrix construction but has fewer capabilities.
Supported keywords:
| Keyword | Effect | Default | Notes |
|---|---|---|---|
Dielectric / eps | Static dielectric constant | 78.3553 | |
Solvent / name | Named solvent for ε lookup | — | Uses static_dielectric() table |
Lebedev | Angular Lebedev points per atom | 302 | Must be a supported grid size |
MaxCycle | Solvent response iterations | 20 | |
Conver | Solvent response convergence threshold | 1e-7 |
Keywords with no effect (ignored if given, no error):
Surface— ddCOSMO does not use a surface meshVdwScale— fixed UFF radii × 1.1 are always usedProbeRadius— no probe radius is addedFrozen,Equilibrium— not implemented
Restrictions:
- ❌ No analytical Hessian — calculations requesting
freqwill fail. - ❌ ECP not supported — ECP integrals are not available for ddCOSMO.
- ❌ Gradient uses adjoint-Lagrangian — the l=0 block is regularised (ε = 1e-3) to stabilise the L-matrix solve.
Example:
task: SCF RHF/STO-3G
MOLECULE
Charge 0
Multiplicity 1
Units Angstrom
END
GEOMETRY
H 0.000000 0.000000 0.000000
H 0.000000 0.000000 1.400000
END
SOLVATION
Model ddcosmo
Solvent water
Lebedev 302
END
ddPCM (Domain-Decomposition PCM)
Extends ddCOSMO with a dielectric preconditioner (A_diele matrix) for improved accuracy at higher dielectric constants.
Supported keywords and restrictions: Identical to ddCOSMO.
Example:
SOLVATION
Model ddpcm
Solvent acetonitrile
MaxCycle 50
Conver 1e-8
END
SMD (Solvation Model based on Density)
SMD combines IEF-PCM electrostatics (with SMD-specific cavity radii) with a density-independent CDS (cavity-dispersion-solvent-structure) term. It requires a named solvent from the Minnesota SMD parameter database.
Supported keywords:
| Keyword | Effect | Default | Notes |
|---|---|---|---|
Solvent / name | Required. SMD solvent name | — | From SMD database (179 solvents) |
Dielectric / eps | Static dielectric constant | from SMD database | Overrides database value if set |
Surface | Cavity discretisation | swig | |
Lebedev | Angular Lebedev points per atom | 302 | |
VdwScale | Scaling factor for vdW radii | 1.2 | Overridden by SMD cavity radii |
ProbeRadius | Probe radius added to vdW radii | 0.0 | Overridden by SMD cavity radii |
MaxCycle | Solvent response iterations | 20 | |
Conver | Solvent response convergence threshold | 1e-7 | |
Frozen | Freeze solvent during post-SCF | false | |
Equilibrium | Equilibrium solvation | false |
Restrictions:
- ⚠️
Solventis required — the CDS term cannot be computed without a named solvent from the SMD database. A bareDielectricwithoutSolventwill construct IEF-PCM electrostatics with SMD cavity radii but will not include the CDS term, and the calculation will abort with an error. VdwScaleandProbeRadiusare parsed but overridden by SMD-specific cavity radii from the database.- SMD provides its own dielectric constant from the database. Setting
Dielectricexplicitly overrides the database value (use with care).
Examples:
Using a named solvent from the SMD database:
task: SCF RHF/STO-3G
MOLECULE
Charge 0
Multiplicity 1
Units Angstrom
END
GEOMETRY
O 0.000000 0.000000 0.117369
H 0.756950 0.000000 -0.469476
H -0.756950 0.000000 -0.469476
END
SOLVATION
Model smd
Solvent water
END
With explicit dielectric override:
task: SCF RHF/STO-3G
MOLECULE
Charge 0
Multiplicity 1
Units Angstrom
END
GEOMETRY
O 0.000000 0.000000 0.117369
H 0.756950 0.000000 -0.469476
H -0.756950 0.000000 -0.469476
END
SOLVATION
Model smd
Solvent ethanol
Dielectric 25.0
END
Keyword Quick Matrix
A row for every keyword, with per-model support.
| Keyword | C-PCM | COSMO | IEF-PCM | SS(V)PE | ddCOSMO | ddPCM | SMD |
|---|---|---|---|---|---|---|---|
Dielectric / eps | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
Solvent / name | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ⚠️ |
Surface (swig/iswig) | ✓ | ✓ | ✓ | ✓ | ✗ | ✗ | ✓ |
Lebedev / ng | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
VdwScale | ✓ | ✓ | ✓ | ✓ | ✗ | ✗ | ✓ * |
ProbeRadius | ✓ | ✓ | ✓ | ✓ | ✗ | ✗ | ✓ * |
MaxCycle / maxiter | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
Conver / conv | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
Frozen | ✓ | ✓ | ✓ | ✓ | ✗ | ✗ | ✓ |
Equilibrium | ✓ | ✓ | ✓ | ✓ | ✗ | ✗ | ✓ |
✓ Overridden by SMD cavity radii from the database.
⚠️ Required for SMD; optional for all other models.
Named Solvents
Lookup Table (All Models except SMD)
When Solvent is given without an explicit Dielectric, the dielectric
constant is looked up from the built-in table below. Names are matched
case-insensitively after stripping spaces, hyphens, underscores, commas, and
dots.
| Solvent | ε | Aliases |
|---|---|---|
| Water | 78.3553 | water, h2o |
| DMSO | 46.7 | dimethylsulfoxide, dmso |
| Nitromethane | 38.20 | nitromethane, ch3no2 |
| Acetonitrile | 35.688 | acetonitrile, ch3cn, mecn |
| Methanol | 32.613 | methanol, ch3oh |
| Ethanol | 24.852 | ethanol, ch3ch2oh |
| Acetone | 20.493 | acetone |
| Propylene Carbonate | 64.96 | propylenecarbonate |
| 1,2-Dichloroethane | 10.125 | dichloroethane, 12dichloroethane |
| Dichloromethane | 8.93 | dichloromethane, methylenechloride, ch2cl2, dcm |
| Tetrahydrofuran | 7.4257 | tetrahydrofuran, tetrahydrofurane, thf |
| Aniline | 6.8882 | aniline |
| Chlorobenzene | 5.6968 | chlorobenzene |
| Chloroform | 4.7113 | chloroform, chcl3 |
| Toluene | 2.3741 | toluene |
| 1,4-Dioxane | 2.2099 | dioxane, 14dioxane |
| Benzene | 2.2706 | benzene, c6h6 |
| Carbon Tetrachloride | 2.2280 | carbontetrachloride, ccl4 |
| Cyclohexane | 2.0165 | cyclohexane, c6h12 |
| n-Heptane | 1.9113 | heptane, nheptane |
| n-Hexane | 1.8819 | hexane, nhexane |
For solvents not in this table, use an explicit Dielectric keyword with the
desired value.
SMD Solvent Database (SMD Model Only)
SMD requires a solvent name from the Minnesota SMD parameter database. The
database contains 179 solvents and is only available when Model = smd.
Quick Reference (Dielectric Constants)
| Solvent | ε | Solvent | ε | Solvent | ε |
|---|---|---|---|---|---|
1,1,1-trichloroethane | 7.0826 | 1,1,2-trichloroethane | 7.1937 | 1,2,4-trimethylbenzene | 2.3653 |
1,2-dibromoethane | 4.9313 | 1,2-dichloroethane | 10.125 | 1,2-ethanediol | 40.245 |
1,4-dioxane | 2.2099 | 1-bromo-2-methylpropane | 7.7792 | 1-bromooctane | 5.0244 |
1-bromopentane | 6.269 | 1-bromopropane | 8.0496 | 1-butanol | 17.332 |
1-chlorohexane | 5.9491 | 1-chloropentane | 6.5022 | 1-chloropropane | 8.3548 |
1-decanol | 7.5305 | 1-fluorooctane | 3.89 | 1-heptanol | 11.321 |
1-hexanol | 12.51 | 1-hexene | 2.0717 | 1-hexyne | 2.615 |
1-iodobutane | 6.173 | 1-iodohexadecane | 3.5338 | 1-iodopentane | 5.6973 |
1-iodopropane | 6.9626 | 1-nitropropane | 23.73 | 1-nonanol | 8.5991 |
1-octanol | 9.8629 | 1-pentanol | 15.13 | 1-pentene | 1.9905 |
1-propanol | 20.524 | 2,2,2-trifluoroethanol | 26.726 | 2,2,4-trimethylpentane | 1.9358 |
2,4-dimethylpentane | 1.8939 | 2,4-dimethylpyridine | 9.4176 | 2,6-dimethylpyridine | 7.1735 |
2-bromopropane | 9.3610 | 2-butanol | 15.944 | 2-chlorobutane | 8.3930 |
2-heptanone | 11.658 | 2-hexanone | 14.136 | 2-methoxyethanol | 17.2 |
2-methyl-1-propanol | 16.777 | 2-methyl-2-propanol | 12.47 | 2-methylpentane | 1.89 |
2-methylpyridine | 9.9533 | 2-nitropropane | 25.654 | 2-octanone | 9.4678 |
2-pentanone | 15.200 | 2-propanol | 19.264 | 2-propen-1-ol | 19.011 |
3-methylpyridine | 11.645 | 3-pentanone | 16.78 | 4-heptanone | 12.257 |
4-methyl-2-pentanone | 12.887 | 4-methylpyridine | 11.957 | 5-nonanone | 10.6 |
a-chlorotoluene | 6.7175 | acetic acid | 6.2528 | acetone | 20.493 |
acetonitrile | 35.688 | acetophenone | 17.44 | aniline | 6.8882 |
anisole | 4.2247 | benzaldehyde | 18.220 | benzene | 2.2706 |
benzonitrile | 25.592 | benzylalcohol | 12.457 | bromobenzene | 5.3954 |
bromoethane | 9.01 | bromoform | 4.2488 | butanal | 13.45 |
butanoic acid | 2.9931 | butanone | 18.246 | butanonitrile | 24.291 |
butylamine | 4.6178 | butylethanoate | 4.9941 | butylether | 3.0473 |
carbon disulfide | 2.6105 | carbon tetrachloride | 2.2280 | chlorobenzene | 5.6968 |
chloroform | 4.7113 | cis-1,2-dimethylcyclohexane | 2.06 | cis-decalin | 2.2139 |
cyclohexane | 2.0165 | cyclohexanone | 15.619 | cyclopentane | 1.9608 |
cyclopentanol | 16.989 | cyclopentanone | 13.58 | decalin (cis/trans mixture) | 2.196 |
dibromomethane | 7.2273 | dichloromethane | 8.93 | diethylamine | 3.5766 |
diethylether | 4.2400 | diethylsulfide | 5.723 | diiodomethane | 5.32 |
diisopropyl ether | 3.38 | dimethyldisulfide | 9.6 | dimethylsulfoxide | 46.826 |
diphenylether | 3.73 | dipropylamine | 2.9112 | e-1,2-dichloroethene | 2.14 |
e-2-pentene | 2.051 | ethanethiol | 6.667 | ethanol | 24.852 |
ethylbenzene | 2.4339 | ethylethanoate | 5.9867 | ethylmethanoate | 8.3310 |
ethylphenylether | 4.1797 | fluorobenzene | 5.42 | formamide | 108.94 |
formicacid | 51.1 | hexanoicacid | 2.6 | iodobenzene | 4.5470 |
iodoethane | 7.6177 | iodomethane | 6.8650 | isopropylbenzene | 2.3712 |
m-cresol | 12.44 | m-xylene | 2.3478 | mesitylene | 2.2650 |
methanol | 32.613 | methylbenzoate | 6.7367 | methylbutanoate | 5.5607 |
methylcyclohexane | 2.024 | methylethanoate | 6.8615 | methylmethanoate | 8.8377 |
methylpropanoate | 6.0777 | n,n-dimethylacetamide | 37.781 | n,n-dimethylformamide | 37.219 |
n-butylbenzene | 2.36 | n-decane | 1.9846 | n-dodecane | 2.0060 |
n-heptane | 1.9113 | n-hexadecane | 2.0402 | n-hexane | 1.8819 |
n-methylaniline | 5.9600 | n-methylformamide(e/zmixture) | 181.56 | n-nonane | 1.9605 |
n-octane | 1.9406 | n-pentadecane | 2.0333 | n-pentane | 1.8371 |
n-undecane | 1.991 | nitrobenzene | 34.809 | nitroethane | 28.29 |
nitromethane | 36.562 | o-chlorotoluene | 4.6331 | o-cresol | 6.76 |
o-dichlorobenzene | 9.9949 | o-nitrotoluene | 25.669 | o-xylene | 2.5454 |
p-isopropyltoluene | 2.2322 | p-xylene | 2.2705 | pentanal | 10.0 |
pentanoic acid | 2.6924 | pentyl ethanoate | 4.7297 | pentylamine | 4.2010 |
perfluorobenzene | 2.029 | propanal | 18.5 | propanoic acid | 3.44 |
propanonitrile | 29.324 | propyl ethanoate | 5.5205 | propylamine | 4.9912 |
pyridine | 12.978 | sec-butylbenzene | 2.3446 | tert-butylbenzene | 2.3447 |
tetrachloroethene | 2.268 | tetrahydrofuran | 7.4257 | tetrahydrothiophene-s,s-dioxide | 43.962 |
tetralin | 2.771 | thiophene | 2.7270 | thiophenol | 4.2728 |
toluene | 2.3741 | trans-decalin | 2.1781 | tributylphosphate | 8.1781 |
trichloroethene | 3.422 | triethylamine | 2.3832 | water | 78.355 |
xylene (mixture) | 2.3879 | z-1,2-dichloroethene | 9.2 |
Full Table (All SMD Parameters)
Complete Minnesota SMD descriptors for all supported solvents.
| Solvent | n | α | β | γ (cal mol⁻¹ Å⁻²) | ε | φ | ψ |
|---|---|---|---|---|---|---|---|
1,1,1-trichloroethane | 1.4379 | 0.0 | 0.09 | 36.24 | 7.0826 | 0.0 | 0.60 |
1,1,2-trichloroethane | 1.4717 | 0.13 | 0.13 | 48.97 | 7.1937 | 0.0 | 0.60 |
1,2,4-trimethylbenzene | 1.5048 | 0.0 | 0.19 | 42.03 | 2.3653 | 0.667 | 0.0 |
1,2-dibromoethane | 1.5387 | 0.10 | 0.17 | 56.93 | 4.9313 | 0.0 | 0.5 |
1,2-dichloroethane | 1.4448 | 0.10 | 0.11 | 45.86 | 10.125 | 0.0 | 0.5 |
1,2-ethanediol | 1.4318 | 0.58 | 0.78 | 69.07 | 40.245 | 0.0 | 0.5 |
1,4-dioxane | 1.4224 | 0.00 | 0.64 | 47.14 | 2.2099 | 0.0 | 0.0 |
1-bromo-2-methylpropane | 1.4348 | 0.00 | 0.12 | 34.69 | 7.7792 | 0.0 | 0.2 |
1-bromooctane | 1.4524 | 0.0 | 0.12 | 41.28 | 5.0244 | 0.0 | 0.111 |
1-bromopentane | 1.4447 | 0.00 | 0.12 | 38.7 | 6.269 | 0.0 | 0.167 |
1-bromopropane | 1.4343 | 0.0 | 0.12 | 36.36 | 8.0496 | 0.0 | 0.250 |
1-butanol | 1.3993 | 0.37 | 0.48 | 35.88 | 17.332 | 0.0 | 0.0 |
1-chlorohexane | 1.4199 | 0.0 | 0.10 | 37.03 | 5.9491 | 0.0 | 0.143 |
1-chloropentane | 1.4127 | 0.0 | 0.1 | 35.12 | 6.5022 | 0.0 | 0.167 |
1-chloropropane | 1.3879 | 0.0 | 0.1 | 30.66 | 8.3548 | 0.0 | 0.25 |
1-decanol | 1.4372 | 0.37 | 0.48 | 41.04 | 7.5305 | 0.0 | 0.0 |
1-fluorooctane | 1.3935 | 0.0 | 0.10 | 33.92 | 3.89 | 0.0 | 0.111 |
1-heptanol | 1.4249 | 0.37 | 0.48 | 38.5 | 11.321 | 0.0 | 0.0 |
1-hexanol | 1.4178 | 0.37 | 0.48 | 37.15 | 12.51 | 0.0 | 0.0 |
1-hexene | 1.3837 | 0.00 | 0.07 | 25.76 | 2.0717 | 0.0 | 0.0 |
1-hexyne | 1.3989 | 0.12 | 0.10 | 28.79 | 2.615 | 0.0 | 0.0 |
1-iodobutane | 1.5001 | 0.00 | 0.15 | 40.65 | 6.173 | 0.0 | 0.0 |
1-iodohexadecane | 1.4806 | 0.00 | 0.15 | 46.48 | 3.5338 | 0.0 | 0.0 |
1-iodopentane | 1.4959 | 0.00 | 0.15 | 41.56 | 5.6973 | 0.0 | 0.0 |
1-iodopropane | 1.5058 | 0.00 | 0.15 | 41.45 | 6.9626 | 0.0 | 0.0 |
1-nitropropane | 1.4018 | 0.00 | 0.31 | 43.32 | 23.73 | 0.0 | 0.0 |
1-nonanol | 1.4333 | 0.37 | 0.48 | 40.14 | 8.5991 | 0.0 | 0.0 |
1-octanol | 1.4295 | 0.37 | 0.48 | 39.01 | 9.8629 | 0.0 | 0.0 |
1-pentanol | 1.4101 | 0.37 | 0.48 | 36.5 | 15.13 | 0.0 | 0.0 |
1-pentene | 1.3715 | 0.00 | 0.07 | 22.24 | 1.9905 | 0.0 | 0.0 |
1-propanol | 1.3850 | 0.37 | 0.48 | 33.57 | 20.524 | 0.0 | 0.0 |
2,2,2-trifluoroethanol | 1.2907 | 0.57 | 0.25 | 42.02 | 26.726 | 0.0 | 0.5 |
2,2,4-trimethylpentane | 1.3915 | 0.00 | 0.00 | 26.38 | 1.9358 | 0.0 | 0.0 |
2,4-dimethylpentane | 1.3815 | 0.0 | 0.00 | 25.42 | 1.8939 | 0.0 | 0.0 |
2,4-dimethylpyridine | 1.5010 | 0.0 | 0.63 | 46.86 | 9.4176 | 0.625 | 0.0 |
2,6-dimethylpyridine | 1.4953 | 0.0 | 0.63 | 44.64 | 7.1735 | 0.625 | 0.0 |
2-bromopropane | 1.4251 | 0.00 | 0.14 | 33.46 | 9.3610 | 0.0 | 0.25 |
2-butanol | 1.3978 | 0.33 | 0.56 | 32.44 | 15.944 | 0.0 | 0.0 |
2-chlorobutane | 1.3971 | 0.00 | 0.12 | 31.1 | 8.3930 | 0.0 | 0.2 |
2-heptanone | 1.4088 | 0.0 | 0.51 | 37.6 | 11.658 | 0.0 | 0.0 |
2-hexanone | 1.4007 | 0.0 | 0.51 | 36.63 | 14.136 | 0.0 | 0.0 |
2-methoxyethanol | 1.4024 | 0.30 | 0.84 | 44.39 | 17.2 | 0.0 | 0.0 |
2-methyl-1-propanol | 1.3955 | 0.37 | 0.48 | 32.38 | 16.777 | 0.0 | 0.0 |
2-methyl-2-propanol | 1.3878 | 0.31 | 0.60 | 28.73 | 12.47 | 0.0 | 0.0 |
2-methylpentane | 1.3715 | 0.0 | 0.00 | 24.3 | 1.89 | 0.0 | 0.0 |
2-methylpyridine | 1.4957 | 0.0 | 0.58 | 47.5 | 9.9533 | 0.714 | 0.0 |
2-nitropropane | 1.3944 | 0.00 | 0.33 | 42.16 | 25.654 | 0.00 | 0.0 |
2-octanone | 1.4151 | 0.00 | 0.51 | 37.29 | 9.4678 | 0.0 | 0.0 |
2-pentanone | 1.3895 | 0.00 | 0.51 | 33.46 | 15.200 | 0.0 | 0.0 |
2-propanol | 1.3776 | 0.33 | 0.56 | 30.13 | 19.264 | 0.0 | 0.0 |
2-propen-1-ol | 1.4135 | 0.38 | 0.48 | 36.39 | 19.011 | 0.0 | 0.0 |
3-methylpyridine | 1.5040 | 0.0 | 0.54 | 49.61 | 11.645 | 0.714 | 0.0 |
3-pentanone | 1.3924 | 0.00 | 0.51 | 35.61 | 16.78 | 0.0 | 0.0 |
4-heptanone | 1.4069 | 0.00 | 0.51 | 35.98 | 12.257 | 0.0 | 0.0 |
4-methyl-2-pentanone | 1.3962 | 0.0 | 0.51 | 33.83 | 12.887 | 0.0 | 0.0 |
4-methylpyridine | 1.5037 | 0.0 | 0.54 | 50.17 | 11.957 | 0.714 | 0.0 |
5-nonanone | 1.4195 | 0.0 | 0.51 | 37.83 | 10.6 | 0.0 | 0.0 |
a-chlorotoluene | 1.5391 | 0.0 | 0.33 | 53.04 | 6.7175 | 0.75 | 0.125 |
acetic acid | 1.3720 | 0.61 | 0.44 | 39.01 | 6.2528 | 0.0 | 0.0 |
acetone | 1.3588 | 0.04 | 0.49 | 33.77 | 20.493 | 0.0 | 0.0 |
acetonitrile | 1.3442 | 0.07 | 0.32 | 41.25 | 35.688 | 0.0 | 0.0 |
acetophenone | 1.5372 | 0.00 | 0.48 | 56.19 | 17.44 | 0.667 | 0.0 |
aniline | 1.5863 | 0.26 | 0.41 | 60.62 | 6.8882 | 0.857 | 0.0 |
anisole | 1.5174 | 0.0 | 0.29 | 50.52 | 4.2247 | 0.75 | 0.0 |
benzaldehyde | 1.5463 | 0.0 | 0.39 | 54.69 | 18.220 | 0.857 | 0.0 |
benzene | 1.5011 | 0.0 | 0.14 | 40.62 | 2.2706 | 1.0 | 0.0 |
benzonitrile | 1.5289 | 0.0 | 0.33 | 55.83 | 25.592 | 0.75 | 0.0 |
benzylalcohol | 1.5396 | 0.33 | 0.56 | 52.96 | 12.457 | 0.75 | 0.0 |
bromobenzene | 1.5597 | 0.0 | 0.09 | 50.72 | 5.3954 | 0.857 | 0.143 |
bromoethane | 1.4239 | 0.0 | 0.12 | 34.0 | 9.01 | 0.0 | 0.333 |
bromoform | 1.6005 | 0.15 | 0.06 | 64.58 | 4.2488 | 0.0 | 0.75 |
butanal | 1.3843 | 0.0 | 0.45 | 35.06 | 13.45 | 0.0 | 0.0 |
butanoic acid | 1.3980 | 0.60 | 0.45 | 37.49 | 2.9931 | 0.0 | 0.0 |
butanone | 1.3788 | 0.00 | 0.51 | 34.5 | 18.246 | 0.0 | 0.0 |
butanonitrile | 1.3842 | 0.0 | 0.36 | 38.75 | 24.291 | 0.0 | 0.0 |
butylamine | 1.4031 | 0.16 | 0.61 | 33.74 | 4.6178 | 0.0 | 0.0 |
butylethanoate | 1.3941 | 0.0 | 0.45 | 35.81 | 4.9941 | 0.0 | 0.0 |
butylether | 1.3992 | 0.00 | 0.45 | 35.98 | 3.0473 | 0.0 | 0.0 |
carbon disulfide | 1.6319 | 0.0 | 0.07 | 45.45 | 2.6105 | 0.0 | 0.0 |
carbon tetrachloride | 1.4601 | 0.00 | 0.00 | 38.04 | 2.2280 | 0.0 | 0.8 |
chlorobenzene | 1.5241 | 0.0 | 0.07 | 47.48 | 5.6968 | 0.857 | 0.143 |
chloroform | 1.4459 | 0.15 | 0.02 | 38.39 | 4.7113 | 0.0 | 0.75 |
cis-1,2-dimethylcyclohexane | 1.4360 | 0.00 | 0.00 | 36.28 | 2.06 | 0.0 | 0.0 |
cis-decalin | 1.4810 | 0.00 | 0.00 | 45.45 | 2.2139 | 0.0 | 0.0 |
cyclohexane | 1.4266 | 0.00 | 0.00 | 35.48 | 2.0165 | 0.0 | 0.0 |
cyclohexanone | 1.4507 | 0.00 | 0.56 | 49.76 | 15.619 | 0.00 | 0.0 |
cyclopentane | 1.4065 | 0.00 | 0.00 | 31.49 | 1.9608 | 0.0 | 0.0 |
cyclopentanol | 1.4530 | 0.32 | 0.56 | 46.8 | 16.989 | 0.0 | 0.0 |
cyclopentanone | 1.4366 | 0.00 | 0.52 | 47.21 | 13.58 | 0.0 | 0.0 |
decalin (cis/trans mixture) | 1.4753 | 0.00 | 0.00 | 43.82 | 2.196 | 0.0 | 0.0 |
dibromomethane | 1.5420 | 0.10 | 0.10 | 56.21 | 7.2273 | 0.0 | 0.667 |
dichloromethane | 1.4242 | 0.10 | 0.05 | 39.15 | 8.93 | 0.0 | 0.667 |
diethylamine | 1.3864 | 0.08 | 0.69 | 28.57 | 3.5766 | 0.0 | 0.0 |
diethylether | 1.3526 | 0.00 | 0.41 | 23.96 | 4.2400 | 0.0 | 0.0 |
diethylsulfide | 1.4430 | 0.00 | 0.32 | 35.36 | 5.723 | 0.0 | 0.0 |
diiodomethane | 1.7425 | 0.05 | 0.23 | 95.25 | 5.32 | 0.0 | 0.0 |
diisopropyl ether | 1.3679 | 0.00 | 0.41 | 24.86 | 3.38 | 0.0 | 0.0 |
dimethyldisulfide | 1.5289 | 0.00 | 0.28 | 48.06 | 9.6 | 0.0 | 0.0 |
dimethylsulfoxide | 1.4783 | 0.00 | 0.88 | 61.78 | 46.826 | 0.0 | 0.0 |
diphenylether | 1.5787 | 0.00 | 0.20 | 38.5 | 3.73 | 0.923 | 0.0 |
dipropylamine | 1.4050 | 0.08 | 0.69 | 32.11 | 2.9112 | 0.0 | 0.0 |
e-1,2-dichloroethene | 1.4454 | 0.09 | 0.05 | 37.13 | 2.14 | 0.0 | 0.5 |
e-2-pentene | 1.3793 | 0.00 | 0.07 | 23.62 | 2.051 | 0.0 | 0.0 |
ethanethiol | 1.4310 | 0.00 | 0.24 | 33.22 | 6.667 | 0.0 | 0.0 |
ethanol | 1.3611 | 0.37 | 0.48 | 31.62 | 24.852 | 0.0 | 0.0 |
ethylbenzene | 1.4959 | 0.00 | 0.15 | 41.38 | 2.4339 | 0.75 | 0.0 |
ethylethanoate | 1.3723 | 0.00 | 0.45 | 33.67 | 5.9867 | 0.0 | 0.0 |
ethylmethanoate | 1.3599 | 0.00 | 0.38 | 33.36 | 8.3310 | 0.0 | 0.0 |
ethylphenylether | 1.5076 | 0.00 | 0.32 | 46.65 | 4.1797 | 0.667 | 0.0 |
fluorobenzene | 1.4684 | 0.00 | 0.10 | 38.37 | 5.42 | 0.857 | 0.143 |
formamide | 1.4472 | 0.62 | 0.60 | 82.08 | 108.94 | 0.0 | 0.0 |
formicacid | 1.3714 | 0.75 | 0.38 | 53.44 | 51.1 | 0.0 | 0.0 |
hexanoicacid | 1.4163 | 0.60 | 0.45 | 39.65 | 2.6 | 0.0 | 0.0 |
iodobenzene | 1.6200 | 0.00 | 0.12 | 55.72 | 4.5470 | 0.857 | 0.0 |
iodoethane | 1.5133 | 0.00 | 0.15 | 40.96 | 7.6177 | 0.0 | 0.0 |
iodomethane | 1.5380 | 0.00 | 0.13 | 43.67 | 6.8650 | 0.0 | 0.0 |
isopropylbenzene | 1.4915 | 0.00 | 0.16 | 39.85 | 2.3712 | 0.667 | 0.0 |
m-cresol | 1.5438 | 0.57 | 0.34 | 51.37 | 12.44 | 0.75 | 0.0 |
m-xylene | 1.4972 | 0.0 | 0.16 | 40.98 | 2.3478 | 0.75 | 0.0 |
mesitylene | 1.4994 | 0.00 | 0.19 | 39.65 | 2.2650 | 0.667 | 0.0 |
methanol | 1.3288 | 0.43 | 0.47 | 31.77 | 32.613 | 0.0 | 0.0 |
methylbenzoate | 1.5164 | 0.00 | 0.46 | 53.5 | 6.7367 | 0.600 | 0.0 |
methylbutanoate | 1.3878 | 0.00 | 0.45 | 35.44 | 5.5607 | 0.0 | 0.0 |
methylcyclohexane | 1.4231 | 0.00 | 0.00 | 33.52 | 2.024 | 0.0 | 0.0 |
methylethanoate | 1.3614 | 0.00 | 0.45 | 35.59 | 6.8615 | 0.0 | 0.0 |
methylmethanoate | 1.3433 | 0.00 | 0.38 | 35.06 | 8.8377 | 0.0 | 0.0 |
methylpropanoate | 1.3775 | 0.00 | 0.45 | 35.18 | 6.0777 | 0.0 | 0.0 |
n,n-dimethylacetamide | 1.4380 | 0.00 | 0.78 | 47.62 | 37.781 | 0.0 | 0.0 |
n,n-dimethylformamide | 1.4305 | 0.00 | 0.74 | 49.56 | 37.219 | 0.0 | 0.0 |
n-butylbenzene | 1.4898 | 0.0 | 0.15 | 41.33 | 2.36 | 0.6 | 0.0 |
n-decane | 1.4102 | 0.00 | 0.00 | 33.64 | 1.9846 | 0.0 | 0.0 |
n-dodecane | 1.4216 | 0.00 | 0.00 | 35.85 | 2.0060 | 0.0 | 0.0 |
n-heptane | 1.3878 | 0.00 | 0.00 | 28.28 | 1.9113 | 0.0 | 0.0 |
n-hexadecane | 1.4345 | 0.00 | 0.00 | 38.93 | 2.0402 | 0.0 | 0.0 |
n-hexane | 1.3749 | 0.00 | 0.00 | 25.75 | 1.8819 | 0.0 | 0.0 |
n-methylaniline | 1.5684 | 0.17 | 0.43 | 53.11 | 5.9600 | 0.75 | 0.0 |
n-methylformamide(e/zmixture) | 1.4319 | 0.40 | 0.55 | 55.44 | 181.56 | 0.0 | 0.0 |
n-nonane | 1.4054 | 0.0 | 0.0 | 32.21 | 1.9605 | 0.0 | 0.0 |
n-octane | 1.3974 | 0.0 | 0.0 | 30.43 | 1.9406 | 0.0 | 0.0 |
n-pentadecane | 1.4315 | 0.0 | 0.0 | 38.34 | 2.0333 | 0.0 | 0.0 |
n-pentane | 1.3575 | 0.0 | 0.0 | 22.3 | 1.8371 | 0.0 | 0.0 |
n-undecane | 1.4398 | 0.0 | 0.0 | 34.85 | 1.991 | 0.0 | 0.0 |
nitrobenzene | 1.5562 | 0.00 | 0.28 | 57.54 | 34.809 | 0.667 | 0.0 |
nitroethane | 1.3917 | 0.02 | 0.33 | 46.25 | 28.29 | 0.0 | 0.0 |
nitromethane | 1.3817 | 0.06 | 0.31 | 52.58 | 36.562 | 0.0 | 0.0 |
o-chlorotoluene | 1.5268 | 0.00 | 0.07 | 47.43 | 4.6331 | 0.75 | 0.125 |
o-cresol | 1.5361 | 0.52 | 0.30 | 53.11 | 6.76 | 0.75 | 0.0 |
o-dichlorobenzene | 1.5515 | 0.00 | 0.04 | 52.72 | 9.9949 | 0.75 | 0.25 |
o-nitrotoluene | 1.5450 | 0.0 | 0.27 | 59.12 | 25.669 | 0.6 | 0.0 |
o-xylene | 1.5055 | 0.0 | 0.16 | 42.83 | 2.5454 | 0.75 | 0.0 |
p-isopropyltoluene | 1.4909 | 0.00 | 0.19 | 38.34 | 2.2322 | 0.600 | 0.0 |
p-xylene | 1.4958 | 0.0 | 0.16 | 40.32 | 2.2705 | 0.75 | 0.0 |
pentanal | 1.3944 | 0.0 | 0.4 | 36.62 | 10.0 | 0.0 | 0.0 |
pentanoic acid | 1.4085 | 0.60 | 0.45 | 38.4 | 2.6924 | 0.0 | 0.0 |
pentyl ethanoate | 1.4023 | 0.0 | 0.45 | 36.23 | 4.7297 | 0.0 | 0.0 |
pentylamine | 1.448 | 0.16 | 0.61 | 35.54 | 4.2010 | 0.0 | 0.0 |
perfluorobenzene | 1.3777 | 0.00 | 0.00 | 31.74 | 2.029 | 0.5 | 0.5 |
propanal | 1.3636 | 0.00 | 0.45 | 32.48 | 18.5 | 0.0 | 0.0 |
propanoic acid | 1.3869 | 0.60 | 0.45 | 37.71 | 3.44 | 0.0 | 0.0 |
propanonitrile | 1.3655 | 0.02 | 0.36 | 38.5 | 29.324 | 0.0 | 0.0 |
propyl ethanoate | 1.3842 | 0.0 | 0.45 | 34.26 | 5.5205 | 0.0 | 0.0 |
propylamine | 1.3870 | 0.16 | 0.61 | 31.31 | 4.9912 | 0.0 | 0.0 |
pyridine | 1.5095 | 0.0 | 0.52 | 52.62 | 12.978 | 0.833 | 0.0 |
sec-butylbenzene | 1.4895 | 0.0 | 0.16 | 40.35 | 2.3446 | 0.60 | 0.0 |
tert-butylbenzene | 1.4927 | 0.0 | 0.16 | 39.78 | 2.3447 | 0.6 | 0.0 |
tetrachloroethene | 1.5053 | 0.0 | 0.0 | 45.19 | 2.268 | 0.0 | 0.667 |
tetrahydrofuran | 1.4050 | 0.0 | 0.48 | 39.44 | 7.4257 | 0.0 | 0.0 |
tetrahydrothiophene-s,s-dioxide | 1.4833 | 0.0 | 0.88 | 87.49 | 43.962 | 0.0 | 0.0 |
tetralin | 1.5413 | 0.0 | 0.19 | 47.74 | 2.771 | 0.6 | 0.0 |
thiophene | 1.5289 | 0.0 | 0.15 | 44.16 | 2.7270 | 0.8 | 0.0 |
thiophenol | 1.5893 | 0.09 | 0.16 | 55.24 | 4.2728 | 0.857 | 0.0 |
toluene | 1.4961 | 0.0 | 0.14 | 40.2 | 2.3741 | 0.857 | 0.0 |
trans-decalin | 1.4695 | 0.0 | 0.0 | 42.19 | 2.1781 | 0.0 | 0.0 |
tributylphosphate | 1.4224 | 0.0 | 1.21 | 27.55 | 8.1781 | 0.0 | 0.0 |
trichloroethene | 1.4773 | 0.08 | 0.03 | 41.45 | 3.422 | 0.0 | 0.6 |
triethylamine | 1.4010 | 0.0 | 0.79 | 29.1 | 2.3832 | 0.0 | 0.0 |
water | 1.3328 | 0.82 | 0.35 | -1.0 | 78.355 | -1.0 | -1.0 |
xylene (mixture) | 1.4995 | 0.0 | 0.16 | 41.38 | 2.3879 | 0.75 | 0.0 |
z-1,2-dichloroethene | 1.4490 | 0.11 | 0.05 | 39.8 | 9.2 | 0.0 | 0.5 |
SYMMETRY Section
The SYMMETRY section controls point-group detection and symmetry usage.
Keywords
| Keyword | Type | Default | Description |
|---|---|---|---|
Tolerance | float | 1e-3 | Tolerance for point-group detection (Å) |
Disable | boolean | false | Force C1 symmetry |
Examples
Default symmetry detection:
SYMMETRY
Tolerance 0.001
END
Tighter symmetry tolerance:
SYMMETRY
Tolerance 0.0001
END
Disable symmetry (force C1):
SYMMETRY
Disable true
END
Notes
- Symmetry is enabled by default. The detected point group is printed in the job header and used to skip symmetry-equivalent ERI shell quartets during energy, gradient, and Hessian computations.
Disable trueforces C1 symmetry: integrals are computed without point-group screening, and all orbital labels are printed asA.- The 8-fold permutational symmetry of ERIs is always applied regardless of symmetry settings.
- The symmetry tolerance controls how strictly the geometry must match the point group symmetry elements.
PARALLEL Section
The PARALLEL section controls how OpenQuantum uses the CPUs and memory of a
single compute node. It selects between three execution layouts:
- Multi-threaded — one process with a shared-memory thread pool that accelerates the hot kernels (two-electron integrals, Fock builds, and the finite-difference Hessian).
- Multi-process — several cooperating processes that each take a slice of an embarrassingly parallel workload (the displaced gradient evaluations of a numerical Hessian).
- Hybrid —
NProcprocesses, each runningNThreadsthreads.
The default is a single process with a single thread (serial execution).
Keywords
| Keyword | Type | Default | Description |
|---|---|---|---|
NProc | integer | 1 | Number of cooperating processes |
NThreads | integer | 1 | Shared-memory threads per process |
NCores | integer | detected | Total physical-core budget |
Mem | memory | unlimited | Total memory budget (e.g. 8GB) |
MemPerProc | memory | derived | Explicit per-process memory budget |
NProc, NThreads, and NCores accept Procs, Threads, and Cores as
aliases. Memory values accept kb, mb, gb, and tb suffixes (binary
units); a bare number is interpreted as megabytes.
Resolution rules
The requested layout is resolved against the machine as follows:
- The default is one process and one thread.
- If you give
NCorestogether withNProc, the threads-per-process is derived so thatNProc × NThreads ≤ NCores. - If you give
Memtogether withNProc, the per-process budget isMem / NProc. - An explicit
NThreadsorMemPerProcalways overrides a derived value.
A memory budget is advisory: the per-process value is reported in the output header and, on Unix, applied as a soft address-space limit so a runaway process fails fast rather than driving the node into swap.
Examples
Two processes spread across eight cores (four threads each):
PARALLEL
NProc 2
NCores 8
END
Eight threads in a single process with an 8 GB budget:
PARALLEL
NThreads 8
Mem 8GB
END
Route-card and command-line equivalents
The same settings may be given on the route card:
#p rhf/sto-3g freq=(numerical) parallel=(nproc=2,ncores=8)
or on the command line, which takes precedence over the input file:
openquantum --nproc 2 --ncores 8 input.inp
openquantum --nthreads 8 --mem 8GB input.inp
or through environment variables, which a batch scheduler script typically sets and which override the input file:
| Variable | Meaning |
|---|---|
OPENQUANTUM_NPROC | Number of processes |
OPENQUANTUM_NTHREADS | Threads per process |
OPENQUANTUM_NCORES | Total core budget |
OPENQUANTUM_MEM | Total memory budget |
OPENQUANTUM_MEM_PER_PROC | Per-process memory budget |
Precedence, from lowest to highest: input file → environment → command line.
Scope
Multi-process execution currently parallelises the numerical (semi-analytical)
Hessian used by Numerical true, OptFreq, and the numerical Hessian path
of Freq. All run types benefit from the shared-memory thread pool. Analytical
Hessians and single-point energies use the thread pool within one process.
CONTROL
The CONTROL section holds general, job-wide settings that are not tied to a
specific computational stage: output verbosity and checkpoint I/O. It is the
home for future general-purpose keywords.
CONTROL
PrintLevel Normal # Minimal / Normal / Verbose / Debug
WriteCheckpoint True
CheckpointName water_opt.oqw
END
Keywords
| Keyword | Values | Default | Description |
|---|---|---|---|
PrintLevel | Minimal, Normal, Verbose, Debug | Normal | Output verbosity. |
WriteCheckpoint | True / False | True | Write a binary checkpoint at the end of the section. |
CheckpointName | file name or path | <input>.oqw | Checkpoint file name. Relative names are placed next to the input file. |
ReadCheckpoint | True / False / path | False | Read a checkpoint at the start. A bare True reads the most recent one; a path reads that file. |
ReadCheckpointName | file name or path | — | Explicit checkpoint to read (takes precedence over ReadCheckpoint). |
Checkpoint contents
Every section with WriteCheckpoint True (the default) writes a binary
(bincode) checkpoint capturing:
- Final geometry (the optimized geometry for
Opt, otherwise the input geometry) - Molecular orbitals (coefficients and energies)
- Hessian, when a frequency calculation was run
- SCF convergence info (energy components, iterations, convergence flag)
- Basis-set info (name and full shell definition)
In a multi-section run, each checkpoint file holds only the data of the latest section that wrote it.
Default checkpoint name
When CheckpointName is omitted, the file is named after the input's base name
with an .oqw extension (e.g. water.inp → water.oqw), written next to the
input file.
Keyword Reference
OpenQuantum accepts keywords through both the section-based input format and the Gaussian-style route card. The keyword reference pages below cover every available option organized by category.
Each keyword page documents:
- Accepted values and default
- Aliases and alternative spellings
- Interaction with other keywords
- Route-card equivalent (where applicable)
For a quick overview of the input format, see the Input File Format.
Task Tokens
The task: line accepts method/run-type tokens and a basis name. These tokens
set the RunType and default method/basis.
Tokens
| Token | Effect |
|---|---|
RHF / UHF / ROHF | Set the SCF method |
OPT | Geometry optimization (alias of RunType::Opt) |
FREQ | Harmonic frequency analysis |
MP2 | Møller–Plesset 2nd-order correlation |
CCSD | Coupled-cluster singles & doubles |
CCSD(T) | CCSD with perturbative triples |
TS | Transition-state search (alias of OPT with TransitionState true) |
IRC | Intrinsic reaction coordinate |
NEB | Nudged elastic band |
RBerny | Switch to the Rust Berny backend |
Sella | Switch to the Sella IC optimizer |
5D / 7F / 6D / 10F | Harmonic selection |
Examples
task: RHF STO-3G
task: OPT UHF 6-31G*
task: TS RHF STO-3G
task: FREQ RHF CC-PVDZ
task: MP2 RHF CC-PVDZ
task: CCSD(T) RHF CC-PVDZ
task: SELLA RHF STO-3G
task: RBERNY RHF STO-3G
Notes
- The first word on the
task:line is the run-type token. - The second word is the method (RHF/UHF/ROHF) or implicit from the token.
- The third word is the basis set name.
- Additional key=value pairs on the
task:line are also accepted.
SCF Keywords
| Keyword | Effect |
|---|---|
Algorithm rhf|uhf|rohf | Choose the SCF method |
Guess core|huckel|sad|read | Initial MO guess |
MaxCycle N | Maximum SCF iterations (default 100) |
Conver N | Convergence threshold = 10⁻ᴺ (default 8) |
Diis N | DIIS subspace size (default 6) |
NoDiis | Disable DIIS |
Shift N | Static level shift (Hartree) |
VShift | Dynamic virtual orbital level shift |
Damp f / Damp true | Density damping (factor or on) |
NoDamp | Turn damping off |
Fermi temperature | Fermi broadening |
Direct | Recompute ERIs every SCF cycle |
Save | Write checkpoint after SCF |
Restart | Read initial guess from checkpoint |
Tight | Tighter convergence preset |
SD | Steepest Descent SCF |
SSD | Scaled Steepest Descent SCF |
MaxRot N | Max QC-SCF macroiterations (default 512) |
MaxNr N | NR gradient threshold = 10⁻ᴺ (default 2) |
FullLinear | Full 1D line search in QC-SCF |
OldQC | Old QC polynomial-only line search |
See SCF Section for detailed descriptions and examples.
DFT Keywords
DFT keywords are accepted in the DFT section and, for grid controls, in
route-card Int= options.
Section keywords
| Keyword | Values | Example |
|---|---|---|
Functional | BP86, PBE, TPSS, M06-L, B3LYP, PBE0, M06-2X, ωB97X-D | Functional M06-L |
XC | same as Functional | XC PBE0 |
Method | same as Functional | Method WB97XD |
Grid | Coarse, Medium, Fine, UltraFine, SuperFine, or RRRAAA | Grid 099302 |
Route-card forms
| Route syntax | Meaning |
|---|---|
#p pbe/sto-3g | PBE RKS/UKS with STO-3G |
#p m06l/sto-3g int=superfine | M06-L with SuperFine XC grid |
#p m062x/sto-3g scf=(maxcycle=80,conver=8) | M06-2X hybrid meta-GGA |
#p wb97xd/sto-3g int=grid=099302 | ωB97X-D with custom 99 × 302 grid |
Custom grid code
The custom grid code is six digits:
Grid 099302
099= radial shells per atom.302= requested angular order.
The angular dispatcher uses exact Lebedev–Laikov grids up to 302 points and a Fibonacci-sphere grid above that value.
INT Keywords
| Keyword | Effect |
|---|---|
Acc2E N | ERI screening threshold = 10⁻ᴺ (default 12) |
UltraFine | Use a larger integration grid |
Eri auto | Fast SP + Rys hybrid (S/P→SP, higher-L→Rys, MD fallback) |
Eri md | McMurchie–Davidson for all quartets (default) |
Eri sp / Eri spfast | Force SP-fast paths, MD fallback |
Eri rys / Eri rysquadrature | Prefer Rys quadrature, MD fallback |
NoSymm | Disable point-group symmetry |
Grid coarse|fine|ultrafine | DFT integration grid (future) |
Relativistic dk|zora|none | Relativistic Hamiltonian (future) |
FcMod N | Freeze core shells (per atom) |
Semiempirical name | Activate a semiempirical method |
ERI Engine Selection
| Engine | Eri value | Best for | Notes |
|---|---|---|---|
| McMurchieDavidson | md | All systems (default) | Universal, correct for all angular momenta |
| SpFast | sp, spfast | Organic molecules (H,C,N,O,F) | 10× ERI speedup for S/P shells only |
| Rys | rys, rysquadrature | Transition metals, D/F+ | Rys-first path with MD fallback |
| Auto | auto | General use | Fast SP + Rys routing, MD fallback |
See INT Section for detailed descriptions and examples.
OPT Keywords
| Keyword | Effect |
|---|---|
Algorithm bfgs|berny|rberny|sella|geometric | Optimizer backend (geometric aliases: geomet, tric) |
Coord cartesian|primitive|dlc|hdlc|tric|tric-p | Internal-coordinate model |
MaxCycle N | Maximum optimization cycles (default 100) |
Trust r | Initial trust radius, Bohr (default 0.3) |
TMax r | Maximum trust radius, Bohr (default 0.5) |
NoTrust | Disable TRM level-shifted Newton step |
TransitionState true | Search for a first-order saddle point (also: TS task token) |
IRC | Intrinsic reaction coordinate follow |
IRCDir +1|-1 | Restrict IRC direction |
NEB | Nudged elastic band |
Images N | Number of NEB images (default 8) |
SellaOrder 1|2 | Sella gradient order (1 = Hessian-only) |
Step trm|prfo|mmf | Step type (TRM, P-RFO, or MMF) |
Update bfgs|psb|ms|bofill|sr1|dfp|bfgs_powell|ts-bfgs | Hessian update formula |
Diis | Enable GEDIIS |
DiisSize N | GEDIIS subspace size |
Symmetry | Exploit point-group symmetry in IC build |
MOGuess true|false | Reuse previous cycle's orbitals as next SCF guess (warm start, default true) |
OptSymmetry | Enforce symmetry along the optimisation path |
NoStep | Run optimizer without taking a step (debug) |
Hessian analytical|semi | Hessian source for IC initialisation |
NoCartHessian | Ignore any inline Cartesian Hessian |
CartHessian … | Inline Cartesian Hessian matrix |
Rigid | Rigid-body component removal (TRIC only) |
RemoveTr | Remove TR modes (DLC/HDLC/TRIC only) |
ConMethod 0|1 | Delocalized construction method |
Connect | Reconnect connectivity graph at every step |
AddCart | Add Cartesian components to IC basis |
ConnectIsolated | Connect isolated fragments |
Primitive | Alias for Coord primitive |
PrimStep | Step projection in primitive IC space |
Gauss default|loose|tight | Convergence preset |
Tighten N | Tighten all criteria by 10⁻ᴺ |
MaxDisplacement r | Max allowed step length |
Constraints clause-list | Geometric constraints |
Dihedral true|false | (RBerny only) Include dihedral angles in IC set (default true) |
SuperWeakDih true|false | (RRust Berny only) Use super‑weak dihedral force constants (default false) |
EnergyNoise r | (RBerny only) Energy‑noise floor for trust‑radius updates (default 2e-8) |
Rust Berny backend keywords only apply when Algorithm rberny (or the RBerny task token) is active.
Constraint Syntax
Multiple clauses joined by ;:
Frozen atoms/components:
freeze_atoms:1-3;6freeze_x:2freeze_yz:4-5
Geometric targets (append ! for hard constraint):
bond:1-2=1.40angangle:1-2-3=104.5degdihedral:1-2-3-4=180deg!
Penalty tuning:
kbond=…,kangle=…,kdihedral=…, ork=…for all three
See OPT Section and Constraints for detailed descriptions and examples.
FREQ Keywords
| Keyword | Effect |
|---|---|
Hessian analytical|semi | Hessian source (default: analytical for RHF/UHF) |
Numerical | Force finite-difference Hessian |
Step r | Finite-difference step, Bohr (default 0.01) |
Temperature T | Temperature for thermochemistry, K (default 298.15) |
Pressure P | Pressure for thermochemistry, atm (default 1.0) |
Scale f | Frequency scaling factor for ZPE / thermal corrections |
SymmetryNumber N | Rotational symmetry number (default 1, auto-detected) |
Read file | Read Hessian from checkpoint file |
Save | Write Hessian to checkpoint after computation |
See FREQ Section for detailed descriptions and examples.
MP2 Keywords
| Keyword | Effect |
|---|---|
| `Scaling none | scs |
OS f | Opposite-spin correlation scale factor |
SS f | Same-spin correlation scale factor |
DF | Density-fitting / RI-MP2 request |
Aux name | Auxiliary basis set for DF-MP2 |
KeepHalf | Keep half-transformed AO integrals |
DiscardVV | Discard virtual–virtual blocks (DF only) |
Skip tokens | Comma-separated skip tokens (e.g. Skip eri) |
Acc2E N | ERI threshold override for MP2 |
FreezeCore, FC | Use automatic chemically standard frozen core |
FreezeCore N, FC=N | Freeze exactly N lowest occupied orbitals |
Full, NoFC | Correlate all occupied orbitals |
Spin-Component Scaling
Scaling | Description |
|---|---|
none | Canonical MP2 |
scs | SCS-MP2 defaults: OS = 1.2, SS = 1/3 |
sos | SOS-MP2 defaults: OS = 1.3, SS = 0.0 |
Custom OS and SS values override the scaling defaults.
See MP2 Section for detailed descriptions and examples.
CC Keywords
| Keyword | Effect |
|---|---|
Triples none|st|pt|f | Perturbative-triples model (CCSD(T) uses st) |
FreezeCore | Correlate only valence electrons |
DropVirt f | Drop virtual orbitals below threshold |
Conv N | Convergence threshold = 10⁻ᴺ |
MaxIter N | Max CC iterations (default 50) |
Diis | Enable CC-DIIS |
DiisStart N | First iteration to use DIIS (default 2) |
Shift f | Static level shift for amplitude update |
Read file | Read amplitudes from checkpoint |
Skip tokens | Comma-separated skip tokens |
Acc2E N | ERI threshold override for CC |
Brueckner | Brueckner coupled-cluster (BCCD/BCCD(T)) |
Triples Models
Triples | Description |
|---|---|
none | CCSD only |
st | Standard CCSD(T) (non-iterative) |
pt | CCSD(2)_T (iterative) |
f | Full CCSDT (iterative) |
See CC Section for detailed descriptions and examples.
Solvation Keywords
Solvent settings are specified in the SOLVATION input section.
| Keyword | Values | Default | Effect |
|---|---|---|---|
Model | cpcm, cosmo, iefpcm, ssvpe, ddcosmo, ddpcm, smd | cpcm | Electrostatic solvent model |
Dielectric | float | 78.3553 | Static dielectric constant ε |
Solvent | string | — | Named solvent for tabulated ε + SMD CDS |
Surface | swig, iswig | swig | Cavity surface discretization |
Lebedev | int | 110 | Angular Lebedev points per atom |
VdwScale | float | 1.0 | Scaling of van der Waals radii |
ProbeRadius | float (Å) | 0.0 | Probe radius added to vdW radii |
MaxCycle | int | 100 | Maximum solvent response iterations |
Conver | float | 1e-8 | Solvent response convergence threshold |
Frozen | bool | false | Keep solvent frozen during post-SCF |
Equilibrium | bool | false | Equilibrium (not non-equilibrium) solvation |
Solvent Models
| Token | Model |
|---|---|
cpcm | Conductor-like PCM |
cosmo | Conductor-like Screening Model |
iefpcm | Integral Equation Formalism PCM |
ssvpe | Surface & Simulation of Vol. Pol. |
ddcosmo | Domain-decomposition COSMO |
ddpcm | Domain-decomposition PCM |
smd | SMD (IEF-PCM electrostatics + CDS) |
Cavity Surface
| Token | Method | Switching Function |
|---|---|---|
swig | Switching/Gaussian | Polynomial switching |
iswig | Improved SWIG | erfc-based switching |
SYMMETRY Keywords
| Keyword | Effect |
|---|---|
Tolerance f | Tolerance for point-group detection, Å (default 1e-3) |
Disable | Force C1 symmetry |
See SYMMETRY Section for detailed descriptions and examples.
Basis Sets
OpenQuantum ships with over 520 basis sets built directly into the
binary. The table below lists every available keyword and its element
coverage. Auxiliary basis sets (/J, /JK, /C suffixes) are also
available through the same keywords.
Quick Start
Specify a basis set on the task: line:
task: RHF def2-TZVP
task: UHF cc-pVDZ
task: RKS aug-cc-pVTZ B3LYP
Basis set names are case-insensitive and tolerate hyphens, underscores, and parentheses:
def2-TZVP def2-tzvp def2tzvp all work
cc-pVDZ cc-pvdz CCPVDZ all work
6-31+G** 6-31+g** 631+G** all work
ANO
| Keyword | Element Availability |
|---|---|
ANO-pV5Z | H–Ar, Sc–Zn |
ANO-pV6Z | H–Ar, Sc–Zn |
ANO-pVDZ | H–Ar, Sc–Zn |
ANO-pVQZ | H–Ar, Sc–Zn |
ANO-pVTZ | H–Ar, Sc–Zn |
ANO-SZ | H–Ar, Sc–Zn |
aug-ANO-pV5Z | H–Ar, Sc–Zn |
aug-ANO-pVDZ | H–Ar, Sc–Zn |
aug-ANO-pVQZ | H–Ar, Sc–Zn |
aug-ANO-pVTZ | H–Ar, Sc–Zn |
saug-ANO-pV5Z | H–Ar, Sc–Zn |
saug-ANO-pVDZ | H–Ar, Sc–Zn |
saug-ANO-pVQZ | H–Ar, Sc–Zn |
saug-ANO-pVTZ | H–Ar, Sc–Zn |
ANO-RCC
| Keyword | Element Availability |
|---|---|
ANO-RCC-DZP | H–Cm |
ANO-RCC-Full | H–Cm |
ANO-RCC-QZP | H–Cm |
ANO-RCC-TZP | H–Cm |
Ahlrichs SV / TZV / QZV
| Keyword | Element Availability |
|---|---|
CP | Sc–Zn |
CP(PPP) | Sc–Zn |
QZVP | H–Kr |
QZVPP | H–Kr |
SV | H–Kr |
SV(P) | H–Kr |
SVP | H–Kr |
TZV | H–Kr |
TZV(P) | H–Kr |
TZVP | H–Kr |
TZVPP | H–Kr |
Ahlrichs SV / TZV / QZV (old-style)
| Keyword | Element Availability |
|---|---|
old-SV | H–I |
old-SV(P) | H–I |
old-SVP | H–I |
old-TZV | H–I |
old-TZV(P) | H–I |
old-TZVP | H–I |
old-TZVPP | H–I |
CBS / W1
| Keyword | Element Availability |
|---|---|
W1-DZ | H–Ar |
W1-mtsmall | H–Ar |
W1-Opt | H–Ar |
W1-QZ | H–Ar |
W1-TZ | H–Ar |
Wachters+f | Sc–Cu |
D95
| Keyword | Element Availability |
|---|---|
D95 | H, Li, B–Ne, Al–Cl |
D95p | H, Li, B–Ne, Al–Cl |
Dunning aug-cc-pCVXZ
| Keyword | Element Availability |
|---|---|
aug-cc-pCV5Z | H–Ar, Ga–Kr |
aug-cc-pCV5Z-PP | Ca, Sr, Ba, Ra |
aug-cc-pCV6Z | H–He, B–Ne, Al–Ar |
aug-cc-pCVDZ | H–Ar, Ga–Kr |
aug-cc-pCVDZ-PP | Ca, Sr, Ba, Ra |
aug-cc-pCVQZ | H–Ar, Ga–Kr |
aug-cc-pCVQZ-PP | Ca, Sr, Ba, Ra |
aug-cc-pCVTZ | H–Ar, Ga–Kr |
aug-cc-pCVTZ-PP | Ca, Sr, Ba, Ra |
Dunning aug-cc-pVXZ
| Keyword | Element Availability |
|---|---|
aug-cc-pV5Z | H–Ar, Sc–Kr |
aug-cc-pV5Z-PP-OptRI | Cu–Zn, Ag–Cd, Au–Hg |
aug-cc-pV5Z/C | H–Ne, Al–Ar, Ga–Kr |
aug-cc-pV5Z/JK | H, B–F, Al–Cl, Ga–Br |
aug-cc-pV6Z | H–He, B–Ne, Al–Ar |
aug-cc-pV6Z/C | H–He, B–Ne, Al–Ar |
aug-cc-pVDZ | H–Ar, Sc–Kr |
aug-cc-pVDZ-PP-OptRI | Cu–Zn, Ag–Cd, Au–Hg |
aug-cc-pVDZ-PP/C | Cu–Kr, Y–Xe, Hf–Rn |
aug-cc-pVDZ/C | H–He, Be–Ne, Mg–Ar, Ga–Kr |
aug-cc-pVQZ | H–Ar, Sc–Kr |
aug-cc-pVQZ-PP-OptRI | Cu–Zn, Ag–Cd, Au–Hg |
aug-cc-pVQZ-PP/C | Cu–Kr, Y–Xe, Hf–Rn |
aug-cc-pVQZ/C | H–He, Be–Ne, Mg–Ar, Sc–Kr |
aug-cc-pVQZ/JK | H, B–F, Al–Cl, Ga–Br |
aug-cc-pVTZ | H–Ar, Sc–Kr, Ag, Au |
aug-cc-pVTZ-J | H, B–F, Al–Cl, Sc–Zn, Se |
aug-cc-pVTZ-PP-OptRI | Cu–Zn, Ag–Cd, Au–Hg |
aug-cc-pVTZ-PP/C | Cu–Kr, Y–Xe, Hf–Rn |
aug-cc-pVTZ/C | H–He, Be–Ne, Mg–Ar, Sc–Kr |
aug-cc-pVTZ/JK | H, B–F, Al–Cl, Ga–Br |
Dunning aug-cc-pwCVXZ
| Keyword | Element Availability |
|---|---|
aug-cc-pwCV5Z | H–Ar, Sc–Kr |
aug-cc-pwCV5Z/C | H–Ne, Al–Ar |
aug-cc-pwCVDZ | H–Ar, Ga–Kr |
aug-cc-pwCVDZ/C | H–He, B–Ne, Al–Ar, Ga–Kr |
aug-cc-pwCVQZ | H–Ar, Sc–Kr |
aug-cc-pwCVQZ/C | H–He, B–Ne, Al–Ar, Ga–Kr |
aug-cc-pwCVTZ | H–Ar, Sc–Kr, Ag, Au |
aug-cc-pwCVTZ/C | H–He, B–Ne, Al–Ar, Sc–Kr |
Dunning cc-pCVXZ
| Keyword | Element Availability |
|---|---|
cc-pCV5Z | H–Ar, Ca, Ga–Kr |
cc-pCV5Z-PP | Ca, Sr, Ba, Ra |
cc-pCV6Z | H–He, B–Ne, Al–Ar |
cc-pCVDZ | H–Ar, Ca, Ga–Kr |
cc-pCVDZ-F12 | Li–Ar |
cc-pCVDZ-F12-MP2Fit | Li–Ar |
cc-pCVDZ-F12-OptRI | Li–Ar |
cc-pCVDZ-PP | Ca, Sr, Ba, Ra |
cc-pCVQZ | H–Ar, Ca, Ga–Kr |
cc-pCVQZ-F12 | Li–Ar |
cc-pCVQZ-F12-MP2Fit | Li–Ar |
cc-pCVQZ-F12-OptRI | Li–Ar |
cc-pCVQZ-PP | Ca, Sr, Ba, Ra |
cc-pCVTZ | H–Ar, Ca, Ga–Kr |
cc-pCVTZ-F12 | Li–Ar |
cc-pCVTZ-F12-MP2Fit | Li–Ar |
cc-pCVTZ-F12-OptRI | Li–Ar |
cc-pCVTZ-PP | Ca, Sr, Ba, Ra |
Dunning cc-pVXZ
| Keyword | Element Availability |
|---|---|
cc-pV5Z | H–Ar, Ca–Kr |
cc-pV5Z/C | H–Ar, Ga–Kr |
cc-pV5Z/JK | H, B–F, Al–Cl, Ga–Br |
cc-pV6Z | H–He, Be–Ne, Al–Ar |
cc-pV6Z/C | H–He, B–Ne, Al–Ar |
cc-pVDZ | H–Ar, Ca–Kr |
cc-pVDZ-PP/C | Cu–Kr, Y–Xe, Hf–Rn |
cc-pVDZ/C | H–Ar, Ga–Kr |
cc-pVQZ | H–Ar, Ca–Kr |
cc-pVQZ-PP/C | Cu–Kr, Y–Xe, Hf–Rn |
cc-pVQZ/C | H–Ar, Sc–Kr |
cc-pVQZ/JK | H, B–F, Al–Cl, Ga–Br |
cc-pVTZ | H–Ar, Ca–Kr, Y, Ag, Au |
cc-pVTZ-PP/C | Cu–Kr, Y–Xe, Hf–Rn |
cc-pVTZ/C | H–Ar, Sc–Kr |
cc-pVTZ/JK | H, B–F, Al–Cl, Ga–Br |
Dunning cc-pVXZ (+d) / calendar-variants
| Keyword | Element Availability |
|---|---|
apr-cc-pV(Q+d)Z | H–Ar |
aug-cc-pV5(+d)Z | Al–Ar |
aug-cc-pV6(+d)Z | Al–Ar |
aug-cc-pVD(+d)Z | Al–Ar |
aug-cc-pVQ(+d)Z | Al–Ar |
aug-cc-pVT(+d)Z | Al–Ar |
cc-pV5(+d)Z | Na–Ar |
cc-pVD(+d)Z | Na–Ar |
cc-pVQ(+d)Z | Na–Ar |
cc-pVT(+d)Z | Na–Ar |
haV(5+d)Z | H–Ar |
haV(Q+d)Z | H–Ar |
haV(T+d)Z | H–Ar |
jul-cc-pV(D+d)Z | H–Ar |
jul-cc-pV(Q+d)Z | H–Ar |
jul-cc-pV(T+d)Z | H–Ar |
jun-cc-pV(D+d)Z | H–Ar |
jun-cc-pV(Q+d)Z | H–Ar |
jun-cc-pV(T+d)Z | H–Ar |
maug-cc-pV(D+d)Z | H–Ar |
maug-cc-pV(Q+d)Z | H–Ar |
maug-cc-pV(T+d)Z | H–Ar |
may-cc-pV(Q+d)Z | H–Ar |
may-cc-pV(T+d)Z | H–Ar |
Dunning cc-pVXZ-DK
| Keyword | Element Availability |
|---|---|
aug-cc-pV5Z-DK | H–Ar, Sc–Kr |
aug-cc-pVDZ-DK | H–Ar, Sc–Kr |
aug-cc-pVQZ-DK | H–Ar, Sc–Kr, In–Xe, Tl–Rn |
aug-cc-pVTZ-DK | H–Ar, Sc–Kr, Y–Xe, Hf–Rn |
cc-pV5Z-DK | H–Ar, Sc–Kr |
cc-pVDZ-DK | H–Ar, Sc–Kr |
cc-pVDZ-DK3 | U |
cc-pVQZ-DK | H–Ar, Sc–Kr, In–Xe, Tl–Rn |
cc-pVQZ-DK3 | U |
cc-pVTZ-DK | H–Ar, Sc–Kr, Y–Xe, Hf–Rn |
cc-pVTZ-DK3 | U |
Dunning cc-pVXZ-F12
| Keyword | Element Availability |
|---|---|
cc-pVDZ-F12 | H–Ar |
cc-pVDZ-F12-CABS | H, B–Ne, Al–Ar |
cc-pVDZ-F12-MP2Fit | H–Ar |
cc-pVDZ-F12-OptRI | H–Ar |
cc-pVDZ-PP-F12 | Ga–Kr, In–Xe, Tl–Rn |
cc-pVDZ-PP-F12-MP2Fit | Ga–Kr, In–Xe, Tl–Rn |
cc-pVDZ-PP-F12-OptRI | Ga–Kr, In–Xe, Tl–Rn |
cc-pVQZ-F12 | H–Ar |
cc-pVQZ-F12-CABS | H, B–Ne, Al–Ar |
cc-pVQZ-F12-MP2Fit | H–Ar |
cc-pVQZ-F12-OptRI | H–Ar |
cc-pVQZ-PP-F12 | Ga–Kr, In–Xe, Tl–Rn |
cc-pVQZ-PP-F12-MP2Fit | Ga–Kr, In–Xe, Tl–Rn |
cc-pVQZ-PP-F12-OptRI | Ga–Kr, In–Xe, Tl–Rn |
cc-pVTZ-F12 | H–Ar |
cc-pVTZ-F12-CABS | H, B–Ne, Al–Ar |
cc-pVTZ-F12-MP2Fit | H–Ar |
cc-pVTZ-F12-OptRI | H–Ar |
cc-pVTZ-PP-F12 | Ga–Kr, In–Xe, Tl–Rn |
cc-pVTZ-PP-F12-MP2Fit | Ga–Kr, In–Xe, Tl–Rn |
cc-pVTZ-PP-F12-OptRI | Ga–Kr, In–Xe, Tl–Rn |
Dunning cc-pVXZ-PP
| Keyword | Element Availability |
|---|---|
aug-cc-pV5Z-PP | Ca, Cu–Kr, Sr–Xe, Ba, Hf–Rn, Ra |
aug-cc-pVDZ-PP | Ca, Cu–Kr, Sr–Xe, Ba, Hf–Rn, Ra |
aug-cc-pVQZ-PP | Ca, Cu–Kr, Sr–Xe, Ba, Hf–Rn, Ra |
aug-cc-pVTZ-PP | Ca, Cu–Kr, Sr–Xe, Ba, Hf–Rn, Ra |
cc-pV5Z-PP | Ca, Cu–Kr, Sr–Xe, Ba, Hf–Rn, Ra |
cc-pVDZ-PP | Ca, Cu–Kr, Sr–Xe, Ba, Hf–Rn, Ra, U |
cc-pVQZ-PP | Ca, Cu–Kr, Sr–Xe, Ba, Hf–Rn, Ra, U |
cc-pVTZ-PP | Ca, Cu–Kr, Sr–Xe, Ba, Hf–Rn, Ra, U |
Dunning cc-pwCVXZ
| Keyword | Element Availability |
|---|---|
cc-pwCV5Z | H–Ar, Ca–Kr |
cc-pwCV5Z/C | H–Ne, Al–Ar |
cc-pwCVDZ | H–Ar, Ca, Ga–Kr |
cc-pwCVDZ/C | H–He, B–Ne, Al–Ar, Ga–Kr |
cc-pwCVQZ | H–Ar, Ca–Kr |
cc-pwCVQZ/C | H–He, B–Ne, Al–Ar, Ga–Kr |
cc-pwCVTZ | H–Ar, Ca–Kr, Ag, Au |
cc-pwCVTZ/C | H–He, B–Ne, Al–Ar, Sc–Kr |
Dunning cc-pwCVXZ-DK
| Keyword | Element Availability |
|---|---|
aug-cc-pwCV5Z-DK | H–Be, Na–Mg, Sc–Zn |
aug-cc-pwCVDZ-DK | H–Be, Na–Mg, Sc–Zn |
aug-cc-pwCVQZ-DK | H–Be, Na–Mg, Sc–Zn, In–Xe, Tl–Rn |
aug-cc-pwCVTZ-DK | H–Be, Na–Mg, Sc–Zn, Y–Xe, Hf–Rn |
cc-pwCV5Z-DK | H–Be, Na–Mg, Ca–Zn |
cc-pwCVDZ-DK | H–Be, Na–Mg, Ca–Zn |
cc-pwCVDZ-DK3 | U |
cc-pwCVQZ-DK | H–Be, Na–Mg, Ca–Zn, In–Xe, Tl–Rn |
cc-pwCVQZ-DK3 | U |
cc-pwCVTZ-DK | H–Be, Na–Mg, Ca–Zn, Y–Xe, Hf–Rn |
cc-pwCVTZ-DK3 | U |
Dunning cc-pwCVXZ-PP
| Keyword | Element Availability |
|---|---|
aug-cc-pwCV5Z-PP | Ca, Cu–Kr, Sr–Xe, Ba, Hf–Rn, Ra |
aug-cc-pwCV5Z-PP-OptRI | Cu–Zn, Ag–Cd, Au–Hg |
aug-cc-pwCVDZ-PP | Ca, Cu–Kr, Sr–Xe, Ba, Hf–Rn, Ra |
aug-cc-pwCVDZ-PP-OptRI | Cu–Zn, Ag–Cd, Au–Hg |
aug-cc-pwCVDZ-PP/C | Cu–Kr, Y–Xe, Hf–Rn |
aug-cc-pwCVQZ-PP | Ca, Cu–Kr, Sr–Xe, Ba, Hf–Rn, Ra |
aug-cc-pwCVQZ-PP-OptRI | Cu–Zn, Ag–Cd, Au–Hg |
aug-cc-pwCVQZ-PP/C | Cu–Kr, Y–Xe, Hf–Rn |
aug-cc-pwCVTZ-PP | Ca, Cu–Kr, Sr–Xe, Ba, Hf–Rn, Ra |
aug-cc-pwCVTZ-PP-OptRI | Cu–Zn, Ag–Cd, Au–Hg |
aug-cc-pwCVTZ-PP/C | Cu–Kr, Y–Xe, Hf–Rn |
cc-pwCV5Z-PP | Ca, Cu–Kr, Sr–Xe, Ba, Hf–Rn, Ra |
cc-pwCVDZ-PP | Ca, Cu–Kr, Sr–Xe, Ba, Hf–Rn, Ra, U |
cc-pwCVDZ-PP/C | Cu–Kr, Y–Xe, Hf–Rn |
cc-pwCVQZ-PP | Ca, Cu–Kr, Sr–Xe, Ba, Hf–Rn, Ra, U |
cc-pwCVQZ-PP/C | Cu–Kr, Y–Xe, Hf–Rn |
cc-pwCVTZ-PP | Ca, Cu–Kr, Sr–Xe, Ba, Hf–Rn, Ra, U |
cc-pwCVTZ-PP/C | Cu–Kr, Y–Xe, Hf–Rn |
ECP / Effective Core
| Keyword | Element Availability |
|---|---|
LANL08 | Na–La, Hf–Bi |
LANL08(f) | Sc–Cu, Y–Ag, La, Hf–Au |
LANL2DZ | H, Li–La, Hf–Bi, U–Pu |
LANL2TZ | Sc–Zn, Y–Cd, La, Hf–Hg |
LANL2TZ(f) | Sc–Cu, Y–Ag, La, Hf–Au |
EPR / IGLO
| Keyword | Element Availability |
|---|---|
EPR-II | H, B–F |
EPR-III | H, B–F |
IGLO-II | H, B–F, Al–Cl |
IGLO-III | H, B–F, Al–Cl |
Jensen pc-n
| Keyword | Element Availability |
|---|---|
pc-0 | H–Ca, Ga–Kr |
pc-1 | H–Kr |
pc-2 | H–Kr |
pc-3 | H–Kr |
pc-4 | H–Kr |
Jensen pc-n (augmented)
| Keyword | Element Availability |
|---|---|
aug-pc-0 | H–Ca, Ga–Kr |
aug-pc-1 | H–Kr |
aug-pc-2 | H–Kr |
aug-pc-3 | H–Kr |
aug-pc-4 | H–Kr |
Jensen pcH/pcJ/pcSseg/pcX
| Keyword | Element Availability |
|---|---|
pcJ-0 | H–He, B–Ne, Al–Ar |
pcJ-1 | H–He, B–Ne, Al–Ar |
pcJ-2 | H–He, B–Ne, Al–Ar |
pcJ-3 | H–He, B–Ne, Al–Ar |
pcJ-4 | H–He, B–Ne, Al–Ar |
pcSseg-0 | H–Kr |
pcSseg-1 | H–Kr |
pcSseg-2 | H–Kr |
pcSseg-3 | H–Kr |
pcSseg-4 | H–Kr |
Jensen pcH/pcJ/pcSseg/pcX (augmented)
| Keyword | Element Availability |
|---|---|
aug-pcJ-0 | H–He, B–Ne, Al–Ar |
aug-pcJ-1 | H–He, B–Ne, Al–Ar |
aug-pcJ-2 | H–He, B–Ne, Al–Ar |
aug-pcJ-3 | H–He, B–Ne, Al–Ar |
aug-pcJ-4 | H–He, B–Ne, Al–Ar |
aug-pcSseg-0 | H–Kr |
aug-pcSseg-1 | H–Kr |
aug-pcSseg-2 | H–Kr |
aug-pcSseg-3 | H–Kr |
aug-pcSseg-4 | H–Kr |
Jensen pcseg
| Keyword | Element Availability |
|---|---|
pcseg-0 | H–Kr |
pcseg-1 | H–Kr |
pcseg-2 | H–Kr |
pcseg-3 | H–Kr |
pcseg-4 | H–Kr |
Jensen pcseg (augmented)
| Keyword | Element Availability |
|---|---|
aug-pcseg-0 | H–Kr |
aug-pcseg-1 | H–Kr |
aug-pcseg-2 | H–Kr |
aug-pcseg-3 | H–Kr |
aug-pcseg-4 | H–Kr |
Karlsruhe def2
| Keyword | Element Availability |
|---|---|
def2-mSVP | H–Rn |
def2-mTZVP | H–Rn |
def2-mTZVP/J | H–Rn |
def2-mTZVPP | H–Lr |
def2-mTZVPP/J | H–Rn |
def2-QZVP | H–Rn |
def2-QZVPD | H–Rn |
def2-QZVPP | H–Rn |
def2-QZVPP/C | H–Rn |
def2-QZVPPD | H–Rn |
def2-QZVPPD/C | H–La, Hf–Rn |
def2-SV(P) | H–Rn |
def2-SVP | H–Rn |
def2-SVP/C | H–Rn |
def2-SVPD | H–Rn |
def2-SVPD/C | H–La, Hf–Rn |
def2-TZVP | H–Rn |
def2-TZVP(-f) | H–Rn |
def2-TZVP/C | H–Rn |
def2-TZVPD | H–Rn |
def2-TZVPD/C | H–La, Hf–Rn |
def2-TZVPP | H–Rn |
def2-TZVPP/C | H–Rn |
def2-TZVPPD | H–Rn |
def2-TZVPPD/C | H–La, Hf–Rn |
Karlsruhe def2 (ma- / minimal-augmented)
| Keyword | Element Availability |
|---|---|
ma-def-TZVP | Fr–Lr |
ma-def2-mSVP | H–Rn |
ma-def2-QZVP | H–Rn |
ma-def2-QZVPP | H–Rn |
ma-def2-SV(P) | H–Rn |
ma-def2-SVP | H–Rn |
ma-def2-TZVP | H–Rn |
ma-def2-TZVP(-f) | H–Rn |
ma-def2-TZVPP | H–Rn |
ma-DKH-def2-QZVPP | H–Kr |
ma-DKH-def2-SV(P) | H–Kr |
ma-DKH-def2-SVP | H–Kr |
ma-DKH-def2-TZVP | H–Kr |
ma-DKH-def2-TZVP(-f) | H–Kr |
ma-DKH-def2-TZVPP | H–Kr |
ma-ZORA-def2-QZVPP | H–Kr |
ma-ZORA-def2-SV(P) | H–Kr |
ma-ZORA-def2-SVP | H–Kr |
ma-ZORA-def2-TZVP | H–Kr |
ma-ZORA-def2-TZVP(-f) | H–Kr |
ma-ZORA-def2-TZVPP | H–Kr |
MINI / MINIX / MIDI
| Keyword | Element Availability |
|---|---|
MIDI | H–Na, Al–K |
MINI | H–Ca |
MINIS | H–Ca |
MINIX | H–Rn |
Miscellaneous
| Keyword | Element Availability |
|---|---|
def-TZVP | Fr–Lr |
def2/J | H–Rn |
def2/JK | H–Ba, Hf–Rn |
def2/JKsmall | H–Ra, Th–Lr |
x2c/J | H–Rn |
{cspan}1 *Auxiliary basis sets for correlated methods (AuxC)* | * - def2-SVP/C |
{cspan}1 *Complementary auxiliary basis sets for F12 calculations (CABS)* | * - cc-pVDZ-F12-CABS |
{cspan}1 *Coulomb and exchange-fitting auxiliary basis sets (AuxJK)* | * - def2/JK |
{cspan}1 *Coulomb-fitting auxiliary basis sets (AuxJ``)*` | * - def2/J |
{cspan}1 *Orbital basis sets (Basis)* | * - STO-3G |
Partridge
| Keyword | Element Availability |
|---|---|
Partridge-1 | H, Li–Sr |
Partridge-2 | H, Li–Kr |
Partridge-3 | H, Li–Zn |
Partridge-4 | Sc–Zn |
Pople-style (3-21G, 4-22G)
| Keyword | Element Availability |
|---|---|
3-21G | H–Cs |
3-21GSP | H–Ar |
4-22GSP | H–Ar |
Pople-style (6-31G, 6-311G)
| Keyword | Element Availability |
|---|---|
6-311G | H–Br |
6-311G(2d) | H–Br |
6-311G(2d,2p) | H–Br |
6-311G(2d,p) | H–Br |
6-311G(2df) | H–Br |
6-311G(2df,2p) | H–Br |
6-311G(2df,2pd) | H–Br |
6-311G(3df) | H–Br |
6-311G(3df,3pd) | H–Br |
6-311G(d) | H–Br |
6-311G(d,p) | H–Br |
6-311G\* | H–Br |
6-311G\*\* | H–Br |
6-31G | H–Zn |
6-31G(2d) | H–Zn |
6-31G(2d,2p) | H–Zn |
6-31G(2d,p) | H–Zn |
6-31G(2df) | H–Zn |
6-31G(2df,2p) | H–Zn |
6-31G(2df,2pd) | H–Zn |
6-31G(d) | H–Zn |
6-31G(d,p) | H–Zn |
6-31G\* | H–Zn |
6-31G\*\* | H–Zn |
m6-31G | Sc–Cu |
m6-31G\* | Sc–Cu |
Pople-style 6-311G (+/++)
| Keyword | Element Availability |
|---|---|
6-311++G(2d,2p) | H–Br |
6-311++G(2d,p) | H–Br |
6-311++G(2df,2p) | H–Br |
6-311++G(2df,2pd) | H–Br |
6-311++G(3df,3pd) | H–Br |
6-311++G(d,p) | H–Br |
6-311++G\*\* | H–Br |
6-311+G(2d) | H–Br |
6-311+G(2d,2p) | H–Br |
6-311+G(2d,p) | H–Br |
6-311+G(2df) | H–Br |
6-311+G(2df,2p) | H–Br |
6-311+G(2df,2pd) | H–Br |
6-311+G(3df) | H–Br |
6-311+G(3df,2p) | H–Br |
6-311+G(3df,3pd) | H–Br |
6-311+G(d) | H–Br |
6-311+G(d,p) | H–Br |
6-311+G\* | H–Br |
6-311+G\*\* | H–Br |
Pople-style 6-31G (+/++)
| Keyword | Element Availability |
|---|---|
6-31++G(2d,2p) | H–Zn |
6-31++G(2d,p) | H–Zn |
6-31++G(2df,2p) | H–Zn |
6-31++G(2df,2pd) | H–Zn |
6-31++G(d,p) | H–Zn |
6-31++G\*\* | H–Zn |
6-31+G(2d) | H–Zn |
6-31+G(2d,2p) | H–Zn |
6-31+G(2d,p) | H–Zn |
6-31+G(2df) | H–Zn |
6-31+G(2df,2p) | H–Zn |
6-31+G(2df,2pd) | H–Zn |
6-31+G(d) | H–Zn |
6-31+G(d,p) | H–Zn |
6-31+G\* | H–Zn |
6-31+G\*\* | H–Zn |
Relativistic DKH
| Keyword | Element Availability |
|---|---|
DKH-QZVP | H–Kr |
DKH-QZVPP | H–Kr |
DKH-SV(P) | H–Kr |
DKH-SVP | H–Kr |
DKH-TZV(P) | H–Kr |
DKH-TZVP | H–Kr |
DKH-TZVPP | H–Kr |
Relativistic DKH (old-style)
| Keyword | Element Availability |
|---|---|
old-DKH-SV(P) | H–I |
old-DKH-SVP | H–I |
old-DKH-TZV(P) | H–I |
old-DKH-TZVP | H–I |
old-DKH-TZVPP | H–I |
Relativistic DKH-def2
| Keyword | Element Availability |
|---|---|
DKH-def2-QZVPP | H–Kr |
DKH-def2-SV(P) | H–Kr |
DKH-def2-SVP | H–Kr |
DKH-def2-TZVP | H–Kr |
DKH-def2-TZVP(-f) | H–Kr |
DKH-def2-TZVPP | H–Kr |
Relativistic ZORA
| Keyword | Element Availability |
|---|---|
ZORA-QZVP | H–Kr |
ZORA-QZVPP | H–Kr |
ZORA-SV(P) | H–Kr |
ZORA-SVP | H–Kr |
ZORA-TZV(P) | H–Kr |
ZORA-TZVP | H–Kr |
ZORA-TZVPP | H–Kr |
Relativistic ZORA (old-style)
| Keyword | Element Availability |
|---|---|
old-ZORA-SV(P) | H–I |
old-ZORA-SVP | H–I |
old-ZORA-TZV(P) | H–I |
old-ZORA-TZVP | H–I |
old-ZORA-TZVPP | H–I |
Relativistic ZORA-def2
| Keyword | Element Availability |
|---|---|
ZORA-def2-QZVPP | H–Kr |
ZORA-def2-SV(P) | H–Kr |
ZORA-def2-SVP | H–Kr |
ZORA-def2-TZVP | H–Kr |
ZORA-def2-TZVP(-f) | H–Kr |
ZORA-def2-TZVPP | H–Kr |
Relativistic dhf (2c)
| Keyword | Element Availability |
|---|---|
dhf-QZVP | H–Kr, Rb–Rn |
dhf-QZVP-2c | H–Kr, Rb–Rn |
dhf-QZVPP | H–Kr, Rb–Rn |
dhf-QZVPP-2c | H–Kr, Rb–Rn |
dhf-SV(P) | H–Kr, Rb–Rn |
dhf-SV(P)-2c | H–Kr, Rb–Rn |
dhf-SVP | H–Kr, Rb–Rn |
dhf-SVP-2c | H–Kr, Rb–Rn |
dhf-TZVP | H–Kr, Rb–Rn |
dhf-TZVP-2c | H–Kr, Rb–Rn |
dhf-TZVPP | H–Kr, Rb–Rn |
dhf-TZVPP-2c | H–Kr, Rb–Rn |
Relativistic x2c
| Keyword | Element Availability |
|---|---|
x2c-QZVPall | H–Rn |
x2c-QZVPall-2c | H–Rn |
x2c-QZVPall-2c-s | H–Rn |
x2c-QZVPall-s | H–Rn |
x2c-QZVPPall | H–Rn |
x2c-QZVPPall-2c | H–Rn |
x2c-QZVPPall-2c-s | H–Rn |
x2c-QZVPPall-s | H–Rn |
x2c-SV(P)all | H–Rn |
x2c-SV(P)all-2c | H–Rn |
x2c-SV(P)all-s | H–Rn |
x2c-SVPall | H–Rn |
x2c-SVPall-2c | H–Rn |
x2c-SVPall-s | H–Rn |
x2c-TZVPall | H–Rn |
x2c-TZVPall-2c | H–Rn |
x2c-TZVPall-s | H–Rn |
x2c-TZVPPall | H–Rn |
x2c-TZVPPall-2c | H–Rn |
x2c-TZVPPall-s | H–Rn |
SARC
| Keyword | Element Availability |
|---|---|
SARC-DKH-SVP | Hf–Hg |
SARC-DKH-TZVP | Rb–Rn, Ac–Lr |
SARC-DKH-TZVPP | Rb–Rn, Ac–Lr |
SARC-ZORA-SVP | Hf–Hg |
SARC-ZORA-TZVP | Rb–Rn, Ac–Lr |
SARC-ZORA-TZVPP | Rb–Rn, Ac–Lr |
SARC/J | H–Rn, Ac–Lr |
SARC2-DKH-QZV | La–Lu |
SARC2-DKH-QZV/JK | La–Lu |
SARC2-DKH-QZVP | La–Lu |
SARC2-DKH-QZVP/JK | La–Lu |
SARC2-ZORA-QZV | La–Lu |
SARC2-ZORA-QZV/JK | La–Lu |
SARC2-ZORA-QZVP | La–Lu |
SARC2-ZORA-QZVP/JK | La–Lu |
STO-3G
| Keyword | Element Availability |
|---|---|
STO-3G | H–I |
Sapporo
| Keyword | Element Availability |
|---|---|
Sapporo-DKH3-DZP-2012 | K–Rn |
Sapporo-DKH3-QZP-2012 | K–Rn |
Sapporo-DKH3-TZP-2012 | K–Rn |
Sapporo-DZP-2012 | H–Xe |
Sapporo-QZP-2012 | H–Xe |
Sapporo-TZP-2012 | H–Xe |
Universal (UGBS / HGBS / AHGBS)
| Keyword | Element Availability |
|---|---|
AHGBS-5 | H–Og |
AHGBS-7 | H–Og |
AHGBS-9 | H–Og |
AHGBSP1-5 | H–Og |
AHGBSP1-7 | H–Og |
AHGBSP1-9 | H–Og |
AHGBSP2-5 | H–Og |
AHGBSP2-7 | H–Og |
AHGBSP2-9 | H–Og |
AHGBSP3-5 | H–Og |
AHGBSP3-7 | H–Og |
AHGBSP3-9 | H–Og |
HGBS-5 | H–Og |
HGBS-7 | H–Og |
HGBS-9 | H–Og |
HGBSP1-5 | H–Og |
HGBSP1-7 | H–Og |
HGBSP1-9 | H–Og |
HGBSP2-5 | H–Og |
HGBSP2-7 | H–Og |
HGBSP2-9 | H–Og |
HGBSP3-5 | H–Og |
HGBSP3-7 | H–Og |
HGBSP3-9 | H–Og |
UGBS | H–Th, Pu–Am, Cf–Lr |
vDZP
| Keyword | Element Availability |
|---|---|
vDZP | H–Rn |
Footnotes
- 1. Used with the Def-ECP pseudopotentials (Rb–Lr).
- 2. Used with the Def2-ECP pseudopotentials (Rb–Rn).
- 3. Used with the dhf-ECP or dhf-ECP-2c pseudopotentials (Rb–Rn).
- 4. Used with the HayWadt pseudopotentials (Na–La, Hf–Bi, U–Pu).
- 5. Valence double-zeta with large-core pseudopotentials. For the respective ECP types per element, see the ORCA or EMSL Basis Set Library.
- 6. The respective basis sets without core correlation functions, i.e. (aug-)cc-pVXZ(-DK)(/C), are used for H and He.
- 7. Used with the SK-MCDHF-RSC pseudopotentials (Ca, Cu–Kr, Sr–Xe, Ba, Hf–Ra, U).
External / Custom Basis Sets
OpenQuantum supports three external formats for user-supplied basis sets:
| Format | Extension |
|---|---|
| Gaussian GBS | .gbs |
| Orca BAS | .bas |
| JSON | .json |
Search order: OPENQUANTUM_BASIS_PATH → basis/ next to executable → basis/ in CWD.
Pure vs Cartesian Harmonics
By default, OpenQuantum uses pure spherical harmonics (5d, 7f, etc.).
ECP Libraries
BASIS
Library def2-TZVP
Ecp lanl2dz
END
Molecular Geometry
XYZ Format (Section-Based)
MOLECULE
Charge <int> # default 0
Multiplicity <int> # default 1
Units Angstrom | Bohr # default Angstrom
END
GEOMETRY
<ELEMENT> <x> <y> <z> # one line per atom
...
END
- All coordinates default to Angstrom.
ChargeandMultiplicitydefault to 0 and 1.- The
GEOMETRYblock must contain at least one atom. - Element symbols are case-insensitive.
- Multiple geometries (for NEB) separated by a blank line in the same
GEOMETRYblock.
Z-Matrix Format (Route-Card Only)
Z-matrix input is only supported by the legacy route-card parser. It is detected
automatically when the geometry block opens with a charge multiplicity line
(two integers). Distances in Angstrom, angles in degrees.
#p rhf/6-31g
0 1
N
H 1 R
H 1 R 2 A
H 1 R 2 A 3 120.0
Variables:
R=1.012
A=106.7
Molecule Properties
The Molecule type provides:
| Method | Description |
|---|---|
atomic_mass | Atomic masses |
total_mass | Total molecular mass |
center_of_mass | Center of mass |
inertia_tensor | Moment of inertia tensor |
is_linear | Linear molecule detection |
These are used for thermochemistry (rotational entropy) and IRC mass-weighting.
Coordinate Units
- Angstrom (default): 1 Å = 0.529177210903 Bohr
- Bohr: Atomic unit of distance
Set via MOLECULE Units or task: line:
MOLECULE
Units Bohr
END
Constraints
The Constraints keyword in the OPT section supports multiple clauses joined by
;.
Frozen Atoms/Components
| Syntax | Example | Description |
|---|---|---|
freeze_atoms:i-j;k | freeze_atoms:1-3;6 | Freeze all components of atoms 1–3 and 6 |
freeze_x:i | freeze_x:2 | Freeze X component of atom 2 |
freeze_y:i | freeze_y:3 | Freeze Y component of atom 3 |
freeze_z:i | freeze_z:4 | Freeze Z component of atom 4 |
freeze_xy:i | freeze_xy:5 | Freeze X and Y of atom 5 |
freeze_xz:i | freeze_xz:6 | Freeze X and Z of atom 6 |
freeze_yz:i | freeze_yz:7 | Freeze Y and Z of atom 7 |
Geometric Targets
Append ! for hard constraint (enforced via null-space projection).
| Syntax | Example | Description |
|---|---|---|
bond:i-j=value | bond:1-2=1.40ang | Bond distance target |
angle:i-j-k=value | angle:1-2-3=104.5deg | Bond angle target |
dihedral:i-j-k-l=value | dihedral:1-2-3-4=180deg! | Dihedral angle target (hard) |
Units: ang (Angstrom), bohr, deg (degrees), rad (radians).
Penalty Tuning
| Syntax | Description |
|---|---|
kbond=value | Bond force constant |
kangle=value | Angle force constant |
kdihedral=value | Dihedral force constant |
k=value | Set all three at once |
Default penalty constants are used if not specified. Hard constraints (!) use
null-space projection instead of quadratic penalties.
Examples
Freeze atom 1:
Constraints freeze_atoms:1
Freeze X component of atom 2:
Constraints freeze_x:2
Bond constraint with custom force constant:
Constraints bond:1-2=1.40ang;kbond=20.0
Angle constraint:
Constraints angle:1-2-3=109.5deg;kangle=2.0
Hard dihedral constraint:
Constraints dihedral:1-2-3-4=180deg!
Combined constraints:
Constraints freeze_atoms:1;bond:1-2=1.10ang!;k=0.5
Notes
- Multiple clauses are joined by
;. - Hard constraints (
!) are enforced via null-space projection rather than soft quadratic penalties. - Constraint indices are 1-based, matching the atom order in the
GEOMETRYsection. - Frozen atoms/components zero the corresponding gradient/step components.
Examples Overview
This chapter contains comprehensive examples organized by calculation type. All examples use the section-based input format.
Categories
- Single Point Energies
- Geometry Optimization
- Transition State Search
- Frequency Analysis
- SCF Control
- Integral Options
- Post-HF Correlation
- ECP Calculations
- Checkpointing
Quick Reference
| Calculation Type | Task Token | Key Sections |
|---|---|---|
| RHF SP | RHF | MOLECULE, GEOMETRY |
| UHF SP | UHF | MOLECULE (mult=2), GEOMETRY |
| MP2 | MP2 | GEOMETRY, MP2 (optional) |
| CCSD(T) | CCSD(T) | GEOMETRY, CC (optional) |
| Optimization | OPT | GEOMETRY, OPT |
| TS Search | TS | GEOMETRY, OPT (TS) |
| Frequency | FREQ | GEOMETRY, FREQ |
| IRC | (via OPT) | GEOMETRY, OPT (IRC) |
| NEB | (via OPT) | GEOMETRY (2 blocks), OPT (NEB) |
Single Point Energies
Single-point energy calculations are the simplest run type in OpenQuantum. The program solves the SCF equations at a fixed geometry and reports the total energy, orbital energies, and (for post-HF methods) the correlation energy contribution.
The examples below cover:
- RHF / UHF / ROHF — Hartree–Fock for closed-shell, unrestricted, and restricted open-shell reference wavefunctions
- MP2 / CCSD(T) — Møller–Plesset perturbation theory and coupled-cluster correlation energies on top of a converged HF reference
Use the task: line to select the method and basis set. See the
Keyword Reference for all available options.
Single Point: RHF / UHF / ROHF
RHF Single Point — Water, STO-3G
task: RHF STO-3G
MOLECULE
Charge 0
Multiplicity 1
Units Angstrom
END
GEOMETRY
O 0.000000 0.000000 0.117369
H 0.756950 0.000000 -0.469476
H -0.756950 0.000000 -0.469476
END
RHF Single Point — H₂, Coordinates in Bohr
task: RHF STO-3G
MOLECULE
Units Bohr
END
GEOMETRY
H 0.0 0.0 0.0
H 0.0 0.0 1.4
END
UHF Single Point — Hydroxyl Radical (Doublet)
task: UHF 6-31G*
MOLECULE
Charge 0
Multiplicity 2
END
GEOMETRY
O 0.000000 0.000000 0.000000
H 0.000000 0.000000 0.970000
END
ROHF Single Point — Oxygen Atom (Triplet)
task: ROHF STO-3G
MOLECULE
Charge 0
Multiplicity 3
END
GEOMETRY
O 0.0 0.0 0.0
END
Notes
- For UHF, set
Multiplicity 2inMOLECULE(doublet: 2S+1 = 2). - For ROHF, set
Multiplicity 3inMOLECULE(triplet: 2S+1 = 3). - The
Algorithmin theSCFsection is typically redundant with thetask:line.
Single Point: MP2 / CCSD(T)
MP2 Energy — Water, cc-pVDZ
task: MP2 RHF CC-PVDZ
GEOMETRY
O 0.000000 0.000000 0.117369
H 0.756950 0.000000 -0.469476
H -0.756950 0.000000 -0.469476
END
MP2
FreezeCore false
END
CCSD(T) Energy — N₂
task: CCSD(T) RHF CC-PVDZ
GEOMETRY
N 0.0 0.0 0.0
N 0.0 0.0 2.074
END
CC
Triples st
FreezeCore false
END
Notes
- The
task:line for MP2 and CCSD(T) includes the reference method (RHF/UHF/ROHF) and the basis set. FreezeCore falsecorrelates all electrons. UseFreezeCore truefor frozen-core (valence-only) correlation.- CCSD(T) uses
Triples stby default. UseTriples nonefor CCSD only. - MP2 and CC always compute in-core
TwoElectronIntegralsfor the AO→MO transform, even whenDirect trueis enabled for SCF.
DFT Calculations
OpenQuantum runs Kohn–Sham DFT through either Gaussian-style route cards or the section-based input format. These examples cover the available functional rungs, grid control, open-shell DFT, and dispersion-corrected functionals.
Closed-shell GGA (PBE)
title: Water PBE single point
MOLECULE
Charge 0
Multiplicity 1
Units Angstrom
END
task: pbe sto-3
SCF
MaxCycle 50
Conver 8
END
INT
Grid UltraFine
END
GEOMETRY
O 0.000000 0.000000 0.117000
H 0.000000 0.755000 -0.471000
H 0.000000 -0.755000 -0.471000
END
The output reports the functional rung, grid level, the integrated XC energy, the grid electron count, and the signed grid integration error.
Hybrid GGA (B3LYP, PBE0)
title: Water B3LYP
MOLECULE
Charge 0
Multiplicity 1
Units Angstrom
END
task: b3lyp sto-3g
SCF
MaxCycle 50
Conver 8
END
INT
Grid UltraFine
END
GEOMETRY
O 0.000000 0.000000 0.117000
H 0.000000 0.755000 -0.471000
H 0.000000 -0.755000 -0.471000
END
Hybrid functionals mix exact exchange (20% for B3LYP, 25% for PBE0) into the Fock build, so they require electron-repulsion integrals in addition to the grid quadrature.
Meta-GGA (TPSS, M06-L)
title: H2 M06-L
MOLECULE
Charge 0
Multiplicity 1
Units Angstrom
END
task: m06l sto-3g
SCF
MaxCycle 50
Conver 8
END
INT
Grid UltraFine
END
GEOMETRY
H 0.0 0.0 0.0
H 0.0 0.0 0.74
END
M06-L correlation uses the full VS98 working factor with the reduced-gradient
polynomial baseline, so opposite-spin correlation integrates physically on the
standard grid. Meta-GGAs use kinetic-energy density and benefit from a finer
grid; int=superfine is recommended for production runs.
Hybrid meta-GGA (M06-2X)
title: H2 M06-2X
MOLECULE
Charge 0
Multiplicity 1
Units Angstrom
END
task: m062x sto-3g
SCF
MaxCycle 50
Conver 8
END
INT
Grid UltraFine
END
GEOMETRY
H 0.0 0.0 0.0
H 0.0 0.0 0.74
END
M06-2X adds 54% exact exchange on top of the meta-GGA semilocal terms.
Range-separated hybrid with dispersion (ωB97X-D)
title: Water omegaB97X-D
MOLECULE
Charge 0
Multiplicity 1
Units Angstrom
END
task: wb97xd sto-3g
SCF
MaxCycle 50
Conver 8
END
INT
Grid UltraFine
END
GEOMETRY
O 0.000000 0.000000 0.117000
H 0.000000 0.755000 -0.471000
H 0.000000 -0.755000 -0.471000
END
ωB97X-D splits the Coulomb operator into short- and long-range exchange and adds an empirical D2 dispersion correction to the total energy. The job header lists the range-separation parameter ω and the dispersion tag.
Open-shell DFT (UKS)
title: H atom PBE doublet
MOLECULE
Charge 0
Multiplicity 2
Units Angstrom
END
task: PBE STO-3G
SCF
MaxCycle 50
Conver 8
END
GEOMETRY
H 0.0 0.0 0.0
END
Any non-singlet multiplicity dispatches an unrestricted Kohn–Sham calculation with spin-resolved XC potentials.
Section-format DFT with explicit grid
title: Water PBE0 section input
MOLECULE
Charge 0
Multiplicity 1
Units Angstrom
END
task: STO-3G
DFT
Functional PBE0
Grid UltraFine
END
SCF
MaxCycle 100
Conver 8
END
GEOMETRY
O 0.000000 0.000000 0.117000
H 0.000000 0.755000 -0.471000
H 0.000000 -0.755000 -0.471000
END
Custom angular grid
A six-digit grid code requests an explicit radial × angular grid. Angular orders up to 302 use genuine Lebedev–Laikov grids:
#p m06l/sto-3g int=grid=099302
H2 with 99 x 302 grid
0 1
H 0.0 0.0 0.0
H 0.0 0.0 0.74
Choosing a grid
Coarse/Medium— quick smoke tests and early development.Fine/UltraFine— typical GGA and hybrid production runs.SuperFineor a custom099302grid — meta-GGA and M06-family functionals, which are most sensitive to angular and radial resolution.
Geometry Optimization Examples
Geometry optimization finds local minima (and saddle points for TS search) on the potential energy surface. OpenQuantum supports several coordinate models, optimizers, and acceleration methods:
- Standard Optimization — BFGS with Cartesian or default internal coordinates
- Internal Coordinates — Primitive, DLC, and TRIC coordinate back-ends
- Berny RFO / Rust Berny — Trust-radius step control with Gaussian-style convergence
- GEDIIS Acceleration — Geometry-space DIIS extrapolation
- Hessian Update Variants — BFGS, MSP, SR1, DFP, Bofill, PSB, and MS updates
See the specific sub-pages for full examples.
Standard Optimization
Geometry optimization finds a local minimum on the potential energy surface by iteratively updating nuclear positions. The default optimizer uses Cartesian coordinates with a BFGS Hessian update.
Geometry Optimization — Water, RHF/6-31G*
task: OPT RHF 6-31G*
GEOMETRY
O 0.000000 0.000000 0.100000
H 0.750000 0.000000 -0.450000
H -0.750000 0.000000 -0.450000
END
Geometry Optimization — Methyl Radical (UHF Doublet)
task: OPT UHF 6-31G*
MOLECULE
Multiplicity 2
END
GEOMETRY
C 0.000000 0.000000 0.000000
H 0.000000 1.079000 0.000000
H -0.934000 -0.539500 0.000000
H 0.934000 -0.539500 0.000000
END
Notes
- For UHF optimization, set
Multiplicity 2inMOLECULE. - The default optimizer is Berny RFO with Cartesian coordinates.
- Each cycle warm-starts the SCF from the previous cycle's converged orbitals,
which usually cuts SCF iterations substantially after the first step. Disable
with
MOGuess falsein theOPTsection. - See Internal Coordinates, Berny/Rust Berny, and GEDIIS for advanced options.
Internal Coordinates Optimization
Berny RFO Optimization — Water, RHF/STO-3G
task: OPT RHF STO-3G
GEOMETRY
O 0.000000 0.000000 0.100000
H 0.750000 0.000000 -0.450000
H -0.750000 0.000000 -0.450000
END
OPT
Algorithm berny
MaxCycle 50
END
Primitive Internal Coordinates
task: OPT RHF STO-3G
GEOMETRY
O 0.000000 0.000000 0.100000
H 0.750000 0.000000 -0.450000
H -0.750000 0.000000 -0.450000
END
OPT
Algorithm berny
Coord primitive
MaxCycle 50
END
Delocalized Internal Coordinates (DLC)
OPT
Algorithm berny
Coord dlc
MaxCycle 50
END
TRIC (Translation-Rotation Internal Coordinates)
OPT
Algorithm berny
Coord tric
MaxCycle 50
END
GeomeTRIC Native TRIC Optimizer
The geometric backend runs a quasi-Newton optimizer directly in TRIC
coordinates, with rigid-body translation/rotation as first-class internals and
an adaptive trust radius:
task: OPT RHF STO-3G
GEOMETRY
O 0.000000 0.000000 0.100000
H 0.750000 0.000000 -0.450000
H -0.750000 0.000000 -0.450000
END
OPT
Algorithm geometric # aliases: geomet, tric
Coord tric # tric-p drops the rigid-body modes
MaxCycle 200
END
For transition-state searches add TransitionState true (or use the TS task
token); the engine switches to RS-P-RFO with Bofill Hessian updates. Seeding
the initial Hessian via CartHessian is recommended for TS runs.
Notes
- Primitive IC: Full redundant primitive set (bonds, angles, dihedrals, OOP, linear-angle)
- DLC: Non-redundant delocalized basis from SVD of B-matrix
- TRIC: DLC + rigid-body translational/rotational modes removed via modified Gram-Schmidt
- GeomeTRIC backend: native TRIC quasi-Newton; per-fragment rotations are encoded as exponential maps with analytic B-matrix derivatives, and the internal-to-Cartesian back-transform is iterative with periodic-aware residuals
- For floppy molecules or systems with near-linear geometries, TRIC is recommended
- The default algorithm for internal coordinates is Berny RFO
- When
Coord != cartesian, the optimizer automatically uses the IC back-transform
Berny RFO / Rust Berny Backend
RBerny Backend
The RBerny backend is a new implementation of the Berny RFO
algorithm. Select it either via the RBerny task token or Algorithm rberny
in the OPT section.
task: RBERNY RHF STO-3G
GEOMETRY
O 0.000000 0.000000 0.100000
H 0.750000 0.000000 -0.450000
H -0.750000 0.000000 -0.450000
END
Backend-specific controls (Dihedral, SuperWeakDih, EnergyNoise) are
configured in the OPT section alongside Algorithm rberny.
Dihedral — Control torsional coordinates
By default (Dihedral true) the Rust Berny engine includes dihedral (torsion)
angles in its primitive internal‑coordinate set. Setting Dihedral false
omits them entirely, which reduces the coordinate count and removes torsional
coupling from the initial Hessian guess.
task: RBERNY RHF STO-3G
OPT
Algorithm rberny
Dihedral false
END
GEOMETRY
O 0.000000 0.000000 0.100000
H 0.750000 0.000000 -0.450000
H -0.750000 0.000000 -0.450000
END
SuperWeakDih — Soften dihedral Hessian guess
When SuperWeakDih true is set, dihedral angles that would normally receive
a "weak" force‑constant scaling (≈ 0.1) in the Lindh Hessian are instead
treated as "superweak" (≈ 0.01). This gives very soft initial torsional
force constants, useful for floppy molecules where the first few steps
should not over‑correct large dihedral motion.
task: RBERNY RHF STO-3G
OPT
Algorithm rberny
SuperWeakDih true
END
GEOMETRY
C 0.000000 0.000000 0.000000
C 1.540000 0.000000 0.000000
H 0.000000 1.090000 0.000000
H 0.000000 -1.090000 0.000000
H 1.540000 1.090000 0.000000
H 1.540000 -1.090000 0.000000
END
EnergyNoise — Flat‑PES trust‑radius floor
Energy precision estimate in Hartree. The trust‑radius logic treats predicted
energy changes below 10 × EnergyNoise as numerical noise, adjusting the
trust radius conservatively instead of growing or shrinking aggressively.
Increase this on very flat surfaces where tiny energy differences may be
unreliable.
task: RBERNY RHF STO-3G
OPT
Algorithm rberny
EnergyNoise 1e-7
END
GEOMETRY
O 0.000000 0.000000 0.100000
H 0.750000 0.000000 -0.450000
H -0.750000 0.000000 -0.450000
END
Rust Berny Features
- Native Cartesian and internal coordinate paths
- High-performance Rust implementation
- Backend-specific controls:
Dihedral,SuperWeakDih,EnergyNoise - First-cycle Cartesian Hessian injection
- Hard constraints via native correction flow
Usage
Via task token:
task: RBERNY RHF STO-3G
OPT
Dihedral false
END
Via OPT section:
task: OPT RHF STO-3G
OPT
Algorithm rberny
Dihedral false
END
Notes
- The RBerny backend is implemented with native internal coordinate support.
- It provides the same algorithmic features as the legacy Berny optimizer but with better performance and Rust-native code paths.
- For TS searches, combine with
TransitionState true(or theTStask token).
GEDIIS Geometry-Space DIIS
GEDIIS extrapolates from previous geometry/gradient points to accelerate
optimisation. Enable with Diis true.
Basic GEDIIS Usage
task: OPT RHF STO-3G
GEOMETRY
O 0.000000 0.000000 0.100000
H 0.750000 0.000000 -0.450000
H -0.750000 0.000000 -0.450000
END
OPT
Diis true
DiisSize 4
END
Combined with Berny RFO and Larger DIIS Subspace
OPT
Algorithm berny
Diis true
DiisSize 6
MaxCycle 200
END
TS Search with GEDIIS (Berny)
task: TS RHF STO-3G
GEOMETRY
...
END
OPT
TransitionState true
Diis true
END
Sella with GEDIIS
Sella minimum search:
task: SELLA RHF STO-3G
GEOMETRY
...
END
OPT
Algorithm sella
Diis true
END
Sella TS with GEDIIS:
task: TS SELLA RHF STO-3G
GEOMETRY
...
END
OPT
Algorithm sella
TransitionState true
Diis true
END
Sella TS + GEDIIS + Bofill:
task: TS SELLA RHF STO-3G
GEOMETRY
...
END
OPT
Algorithm sella
TransitionState true
Diis true
Update bofill
END
Rust Berny with GEDIIS
OPT
Algorithm rberny
Diis true
END
Notes
- GEDIIS is most effective for:
- Difficult optimizations near flat PES regions
- Multi-step convergences where optimizer oscillates
- Large molecules where SCF is expensive
- Typically reduces optimization cycles by 20–40% for well-behaved systems
- When DIIS is enabled in supported optimizers, you usually run a GEDIIS pipeline that can fall back to GDIIS internally (RFO-DIIS → EnDIS → GDIIS)
- For debugging DIIS behavior, set
OPENQ_DIIS_TRACE=1
Hessian Update Variants for TS Optimization
The Update keyword selects the Hessian update formula.
Bofill Update with TS Search
OPT
TransitionState true
Update bofill
END
Update Formulas
Update= | Description |
|---|---|
bfgs | Standard BFGS (minima) |
psb | Powell–Symmetric–Broyden, rank-2 (TS) |
ms | Murtagh–Sargent, rank-1 (TS, allows negative curvature) |
bofill | φ·PSB + (1-φ)·MS, blends PSB and MS (TS) |
sr1 | Symmetric rank-1 (naturally indefinite) |
dfp | Davidon–Fletcher–Powell (positive-definite) |
bfgs_powell | Auto: BFGS for minima, Bofill for TS |
ts-bfgs | TS-BFGS: BFGS in |H| space (saddle points) |
Examples
Bofill with TS search:
OPT
TransitionState true
Update bofill
END
Bofill with primitive internal coordinates:
OPT
TransitionState true
Update bofill
Coord primitive
END
Bofill with DLC coordinates:
OPT
TransitionState true
Update bofill
Coord dlc
MaxCycle 100
END
PSB with TS search:
OPT
TransitionState true
Update psb
END
PSB with TRIC coordinates:
OPT
TransitionState true
Update psb
Coord tric
END
MS with TS search:
OPT
TransitionState true
Update ms
END
BFGS/Powell mixed for minimum:
OPT
Update bfgs_powell
END
BFGS/Powell mixed for TS (auto Bofill):
OPT
TransitionState true
Update bfgs_powell
END
Combined GEDIIS + Bofill for TS:
OPT
TransitionState true
Update bofill
Diis true
MaxCycle 150
END
Sella + Bofill:
OPT
Algorithm sella
TransitionState true
Update bofill
MaxCycle 100
END
Sella + Bofill + DLC:
OPT
Algorithm sella
TransitionState true
Update bofill
Coord dlc
MaxCycle 100
END
Notes
- Default for Berny TS: Bofill (blends PSB and MS)
- Default for Sella TS: TS-BFGS
- Default for minima: MSP (Berny) or MSP/TS-BFGS (Sella)
- Bofill is recommended for TS searches with Berny optimizer
- TS-BFGS is default for Sella and preserves negative curvature
- BFGS/Powell automatically selects the appropriate update
Transition State Search
Transition-state (TS) search locates saddle points on the potential energy surface — structures with exactly one imaginary frequency. OpenQuantum provides three strategies for TS search:
- P-RFO (Partitioned Rational Function Optimization) — A trust-radius eigenvector-
following method that walks uphill along the lowest Hessian mode and downhill in all
other modes. Selected with
Algorithm sella(orSellatask token) in theOPTsection. - Sella Optimizer — A saddle-point-aware IC optimizer with TS-BFGS Hessian update, P-RFO or Minimum Mode Following (MMF) step, sigma-based trust-radius schedule, and Davidson partial eigensolver for the lowest Hessian mode.
- IRC (Intrinsic Reaction Coordinate) — Path following from a TS to connected minima (reactant and product), using Gonzalez–Schlegel, mass-weighted, predictor-corrector, or bidirectional integration.
- Verification Workflows — Combined TS search → frequency verification → IRC path
in a single input file using multiple
task:sections.
Choose a strategy based on the quality of the initial guess and the curvature of the surface near the TS.
Transition State Search: P-RFO / Sella
P-RFO maximises the energy along the lowest Hessian eigenvector (the TS mode) and
simultaneously minimises along all remaining modes. Activate it with TransitionState true
or by including TS on the task: line.
Basic TS Search (P-RFO)
task: TS RHF STO-3G
GEOMETRY
O 0.000000 0.000000 0.000000
H 1.100000 0.000000 0.500000
H -1.100000 0.000000 0.500000
END
OPT
Coord dlc
MaxCycle 100
END
Sella TS Optimizer
Sella is a saddle-point-aware IC optimizer with TS-BFGS Hessian update and
P-RFO step. Combined with TS it targets a first-order saddle point.
| Property | TransitionState true | Algorithm sella + TransitionState true |
|---|---|---|
| Hessian update | MSP | TS-BFGS |
| Trust-radius schedule | ρ-based (shrink/grow) | σ-based (multiplicative) |
| Initial TS Hessian | Lindh (all positive) | Davidson-refined when available |
| Adaptive eigenvalue check | No | Every 3 steps |
Sella Minimum Optimisation
task: SELLA RHF STO-3G
GEOMETRY
O 0.000000 0.000000 0.100000
H 0.750000 0.000000 -0.450000
H -0.750000 0.000000 -0.450000
END
Sella TS Search with MMF Step (More Robust on Flat Surfaces)
task: TS SELLA RHF STO-3G
GEOMETRY
O 0.000000 0.000000 0.000000
H 1.100000 0.000000 0.500000
H -1.100000 0.000000 0.500000
END
OPT
Step mmf
Coord dlc
SellaOrder 2
MaxCycle 100
END
Rust Berny TS Optimizer
The Rust Berny optimizer carries its own self-contained transition-state search: partitioned RFO with eigenvector following, flowchart SR1/BFGS/PSB Hessian updates, periodic single-negative-eigenvalue restoration, and conservative saddle-point trust-radius defaults (0.05 Bohr initial, 0.15 Bohr maximum). It works in Cartesian, primitive, delocalized/HDLC, and TRIC coordinate models.
Activate it with Algorithm rberny together with TS, or with the rts
shortcut token:
task: TS RHF STO-3G
OPT
Algorithm rberny
Coord dlc
MaxCycle 100
END
GEOMETRY
C -0.621400 -0.081500 0.000000
N 0.572600 -0.081500 0.000000
H -0.201200 1.031500 0.000000
END
Set Step mmf to use the minimum-mode-following saddle-point step (a |H|
denominator), which is more robust on flat surfaces and often converges in fewer
cycles; the default is partitioned RFO.
Eigenvector following tracks the reaction-coordinate eigenvector across cycles by
maximum overlap, so the search keeps climbing the same mode instead of
whichever mode is momentarily lowest. The transition-state workflow seeds the
optimizer with an exact (or finite-difference) Cartesian Hessian at the starting
geometry, so the correct reaction coordinate is identified from the first step;
this applies to both Optimize and OptFreq TS jobs.
Verify the Result
A genuine TS shows exactly one imaginary frequency, printed as a negative value:
Frequencies (cm⁻¹): -1247.3 1652.1 3825.4
Verify with a FREQ job on the converged TS geometry.
Notes
- Starting geometry must be near the transition state
- Initial Hessian must have at least one negative eigenvalue for P-RFO
- The
TStask token impliesOPTwithTransitionState true - Sella with
Step mmfis more robust on flat surfaces (uses |λ| denominator) - Sella TS in DLC space recommended for medium/large molecules
IRC Path Following
The IRC true directive triggers bidirectional IRC from the provided geometry.
The starting geometry should be a pre-converged TS.
IRC Path Following from a Transition State
task: RHF STO-3G
GEOMETRY
O 0.000000 0.000000 0.000000
H 0.800000 0.000000 0.400000
H -0.800000 0.000000 0.400000
END
OPT
IRC true
IRCDir +1
END
Notes
- The
IRC truedirective triggers bidirectional IRC from the provided geometry. - Restrict to one direction with
IRCDir +1(forward) orIRCDir -1(reverse). - The starting geometry should be a pre-converged TS (imaginary frequency expected).
- Uses Gonzalez–Schlegel (1990) mass-weighted IRC with predictor-corrector steps.
- Output includes per-step energies, geometries, and a formatted path summary.
Sella TS + Frequency Verification + IRC Workflow
Step 1 — TS Optimisation with Sella + DLC:
task: TS SELLA RHF STO-3G
GEOMETRY
H -1.200000 0.000000 0.000000
H 0.000000 0.000000 0.000000
H 1.200000 0.000000 0.000000
END
OPT
Coord dlc
MaxCycle 150
END
Step 2 — Frequency Analysis on Converged TS Geometry:
task: FREQ RHF STO-3G
GEOMETRY
# Paste the optimized TS geometry from step 1
H ...
H ...
H ...
END
Step 3 (optional) — IRC from the TS:
task: RHF STO-3G
GEOMETRY
# Same TS geometry
H ...
H ...
H ...
END
OPT
IRC true
END
Notes
- IRC requires a pre-converged TS geometry
- The corrector uses up to 10 iterations per IRC step with perpendicular gradient tolerance of 1e-6
- Bidirectional by default; use
IRCDir +1or-1to restrict - Output includes per-step energies, geometries, and formatted path summary
TS Verification Workflows
Sella TS + Frequency Verification Workflow
Step 1 — TS Optimisation with Sella + DLC:
task: TS SELLA RHF STO-3G
GEOMETRY
H -1.200000 0.000000 0.000000
H 0.000000 0.000000 0.000000
H 1.200000 0.000000 0.000000
END
OPT
Coord dlc
MaxCycle 150
END
Step 2 — Frequency Analysis on Converged TS Geometry:
task: FREQ RHF STO-3G
GEOMETRY
# Paste the optimized TS geometry from step 1
H ...
H ...
H ...
END
Expected output for a genuine TS:
Frequencies (cm⁻¹): -1547.2 789.3 934.6
Step 3 (optional) — IRC from the TS:
task: RHF STO-3G
GEOMETRY
# Same TS geometry
H ...
H ...
H ...
END
OPT
IRC true
END
Basic TS Verification
Step 1 — TS Optimization (Berny):
task: TS RHF STO-3G
GEOMETRY
O 0.000000 0.000000 0.000000
H 1.100000 0.000000 0.500000
H -1.100000 0.000000 0.500000
END
OPT
MaxCycle 100
END
Step 2 — Frequency Verification:
task: FREQ RHF STO-3G
GEOMETRY
# Copy optimized TS geometry
O ...
H ...
H ...
END
A genuine TS shows exactly one imaginary frequency:
Frequencies (cm⁻¹): -1247.3 1652.1 3825.4
TS Verification with Hydrogen Transfer
Step 1 — TS Optimization with Sella + DLC:
task: TS SELLA RHF STO-3G
GEOMETRY
H -1.200000 0.000000 0.000000
H 0.000000 0.000000 0.000000
H 1.200000 0.000000 0.000000
END
OPT
Coord dlc
MaxCycle 150
END
Frequency Analysis Examples
Frequency analysis computes harmonic vibrational frequencies, IR intensities, and thermochemical properties from the nuclear Hessian. OpenQuantum supports two paths:
- Analytical Hessian (default for RHF/UHF/RKS/UKS) — uses the fully analytical energy second derivative with CPHF response
- Semi-analytical Hessian — finite-difference of analytical gradients
The thermochemistry module adds zero-point energy, thermal corrections (U, H, G), and entropy via the RRHO model with automatic symmetry-number detection.
See the sub-pages for full examples of each approach.
Harmonic Frequencies
Harmonic vibrational frequencies are computed from the nuclear Hessian (second derivative of the energy with respect to nuclear displacements). OpenQuantum supports both the fully analytical Hessian (default for RHF/UHF/RKS/UKS) and the semi-analytical finite-difference approach.
Harmonic Frequency Analysis — Water, RHF/STO-3G
task: FREQ RHF STO-3G
GEOMETRY
O 0.000000 0.000000 0.117369
H 0.756950 0.000000 -0.469476
H -0.756950 0.000000 -0.469476
END
FREQ
Hessian analytical
Temperature 298.15
Pressure 1.0
END
UHF Frequency Analysis with Analytical Hessian — OH Radical
task: FREQ UHF STO-3G
MOLECULE
Multiplicity 2
END
GEOMETRY
O 0.000000 0.000000 0.000000
H 0.000000 0.000000 0.970000
END
Notes
- The analytical Hessian is the default for RHF/UHF frequency calculations.
- Use
Hessian semito force finite-difference of gradients. - For TS verification, the geometry must be a pre-converged TS structure.
- A genuine TS shows exactly one imaginary frequency (negative value).
Read Hessian from Checkpoint
FREQ
Read myjob.oqd
END
This avoids recomputing the Hessian for subsequent thermochemistry at different temperatures/pressures.
Thermochemistry
Harmonic frequency analysis computes thermodynamic properties at a given temperature and pressure.
Harmonic Frequency Analysis with Thermochemistry
task: FREQ RHF STO-3G
GEOMETRY
O 0.000000 0.000000 0.117369
H 0.756950 0.000000 -0.469476
H -0.756950 0.000000 -0.469476
END
FREQ
Hessian analytical
Temperature 298.15
Pressure 1.0
Scale 1.0
END
Custom Conditions
FREQ
Temperature 350.0
Pressure 1.0
Scale 0.9854
END
Output
The thermochemistry output includes:
Zero-Point Energy: 0.05895 Hartree
Thermal Correction (E): 0.06123 Hartree
Thermal Correction (H): 0.06217 Hartree
Thermal Correction (G): 0.04188 Hartree
Entropy: 0.04432 Hartree/K
Symmetry Number
The symmetry number σ is automatically determined from the detected point group:
| Point Group | σ |
|---|---|
| C₁ | 1 |
| Cₙ | n |
| Dₙ | 2n |
| T_d | 12 |
| O_h | 24 |
| C∞ᵥ | 1 |
| D∞ₕ | 2 |
Override with SymmetryNumber N in the FREQ section if needed.
Read/Save Hessian
FREQ
Read myjob.oqd
END
FREQ
Save true
END
This avoids recomputing the Hessian for subsequent thermochemistry at different temperatures/pressures.
SCF Control
The SCF procedure can be tuned with a range of convergence and stability options. The examples below cover the most common scenarios:
- Convergence & DIIS — Tightening thresholds, configuring the DIIS subspace, disabling DIIS when it oscillates, and using level shifting or Fermi broadening for difficult cases.
- Level Shift / Direct SCF — Static and dynamic level shifting for near-degenerate systems, and direct SCF mode that recomputes ERIs on the fly to save memory for large molecules.
All SCF controls go in the SCF section. See the SCF Section
for the full keyword reference.
SCF Convergence & DIIS
SCF with Tight Convergence and Custom DIIS
task: RHF DEF2-TZVP
GEOMETRY
O 0.000000 0.000000 0.117369
H 0.756950 0.000000 -0.469476
H -0.756950 0.000000 -0.469476
END
SCF
MaxCycle 200
Conver 10
Diis 10
END
DIIS Parameters
| Keyword | Default | Description |
|---|---|---|
MaxCycle | 100 | Maximum SCF iterations |
Conver | 8 | Convergence threshold = 10⁻ᴺ |
Diis | 6 | DIIS subspace size |
NoDiis | false | Disable DIIS |
Tight Convergence Preset
SCF
Tight true
END
This sets Conver 10 and tighter thresholds automatically.
Disable DIIS
SCF
NoDiis true
END
Useful for systems where DIIS oscillates.
Level Shift
SCF
Shift 0.5
END
Static level shift in Hartree. Helps with difficult convergence (e.g., open-shell transition metals).
Dynamic Level Shift
SCF
VShift true
END
Dynamic virtual orbital level shift (automatically adjusts).
Fermi Broadening
SCF
Fermi 0.01
END
Fermi-Dirac broadening for metallic/near-degenerate systems. Helps with convergence by smearing the Fermi surface.
Level Shift / Direct SCF
Level Shift for Difficult Convergence
task: UHF STO-3G
MOLECULE
Multiplicity 2
END
GEOMETRY
Li 0.0 0.0 0.0
END
SCF
Shift 0.5
MaxCycle 150
END
Direct SCF — Large Molecule
task: RHF 6-31G*
GEOMETRY
C -1.796395 -0.568749 -0.005321
C -0.585071 0.125222 -0.004539
C 0.625618 -0.569857 -0.004391
C 1.831897 0.128238 -0.003610
C 1.832534 1.521736 -0.002974
C 0.626894 2.220934 -0.003119
C -0.584430 1.526963 -0.003900
C -1.795119 2.222042 -0.004049
C -3.001397 1.523947 -0.004830
C -3.002034 0.130449 -0.005466
H -1.806316 -1.656277 -0.005820
H 0.634545 -1.657393 -0.004883
H 2.773551 -0.415222 -0.003495
H 2.774685 2.064334 -0.002365
H 0.636815 3.308462 -0.002619
H -1.804045 3.309579 -0.003557
H -3.943052 2.067407 -0.004944
H -3.944185 -0.412149 -0.006075
END
SCF
Direct true
MaxCycle 100
END
Notes
- Level Shift (
Shift): Adds a constant to virtual orbital energies, helping convergence for systems with small HOMO-LUMO gaps or near-degeneracies. - Direct SCF (
Direct true): Recomputes ERIs each SCF iteration instead of storing them. Trades memory for CPU time. Essential for large systems. - Combined: Use both for difficult large systems:
SCF
Direct true
Shift 0.3
MaxCycle 200
END
- Direct SCF uses symmetry-accelerated cache lookup and Schwarz screening for efficiency.
Integral Options
Control the electron-repulsion integral (ERI) engine and other integral-related settings. The selected engine applies uniformly to all ERI computation paths: in-core build, direct SCF, analytical gradients, and analytical Hessians.
- ERI Engine Selection — Choose between MD, SP fast paths, Rys quadrature, or auto
- Symmetry Control — Enable or disable point-group symmetry acceleration
ERI Engine Selection
Choose the ERI engine for the whole calculation (energy, gradient, Hessian, and SCF paths):
INT
Eri auto
END
Engine Options
Eri= | Description |
|---|---|
auto | Fast SP + Rys routing (S/P→SP, higher-L→Rys, MD fallback) — recommended |
md | McMurchie–Davidson (default, most general) |
sp / spfast | SP fast paths for S/P shells, MD fallback for higher-L |
rys / rysquadrature | Rys-first with MD fallback |
SP Analytical Fast Paths — H₂O, STO-3G
task: RHF STO-3G
GEOMETRY
O 0.000000 0.000000 0.117369
H 0.756950 0.000000 -0.469476
H -0.756950 0.000000 -0.469476
END
INT
Eri spfast
END
Rys Quadrature — H₂O, cc-pVDZ (D functions)
task: RHF CC-PVDZ
GEOMETRY
O 0.000000 0.000000 0.117369
H 0.756950 0.000000 -0.469476
H -0.756950 0.000000 -0.469476
END
INT
Eri rys
END
Fast SP + Rys Auto Engine (Recommended)
task: RHF DEF2-TZVP
GEOMETRY
O 0.000000 0.000000 0.117369
H 0.756950 0.000000 -0.469476
H -0.756950 0.000000 -0.469476
END
INT
Eri auto
END
Pure MD Engine (Baseline)
task: RHF DEF2-TZVP
GEOMETRY
O 0.000000 0.000000 0.117369
H 0.756950 0.000000 -0.469476
H -0.756950 0.000000 -0.469476
END
INT
Eri md
END
Notes
- The selected ERI engine applies to all ERI computation paths: in-core integral build, direct SCF, analytical gradients, fully analytical Hessians, and semi-analytical (FD) Hessians.
Eri autois recommended for general use — it routes S/P shells through fast paths and higher angular momentum through Rys quadrature with MD fallback.
Symmetry Control
Disable Symmetry — Water, RHF/STO-3G
Symmetry is on by default. Use NoSymm true to turn it off. This skips
point-group ERI screening and prints all orbital irreps as A (C1 symmetry).
task: RHF STO-3G
GEOMETRY
O 0.000000 0.000000 0.117369
H 0.756950 0.000000 -0.469476
H -0.756950 0.000000 -0.469476
END
INT
NoSymm true
END
Notes
- Symmetry is enabled by default. The detected point group is printed in the job header and used to skip symmetry-equivalent ERI shell quartets during energy, gradient, and Hessian computations.
NoSymm trueforces C1 symmetry: integrals are computed without point-group screening, and all orbital labels are printed asA.- The 8-fold permutational symmetry of ERIs is always applied regardless of
NoSymm. - Symmetry tolerance is controlled in the
SYMMETRYsection (Tolerance).
Custom Symmetry Tolerance
SYMMETRY
Tolerance 0.0001
END
Tighter tolerance requires the geometry to more closely match symmetry elements.
Post-HF Correlation
Correlation energy methods improve upon the Hartree–Fock reference by recovering a fraction of the electron correlation energy. OpenQuantum provides:
- Spin-Scaled MP2 — Møller–Plesset perturbation theory to second order, with optional spin-component scaling (SCS-MP2)
- CCSD Convergence — Coupled-cluster singles and doubles, with convergence controls for the CC iterative solver
Spin-Scaled MP2
Spin-component-scaled MP2 (SCS-MP2) improves upon canonical MP2 by scaling the same-spin (SS) and opposite-spin (OS) correlation contributions separately.
Spin-Scaled MP2 — Water
task: MP2 RHF CC-PVDZ
GEOMETRY
O 0.000000 0.000000 0.117369
H 0.756950 0.000000 -0.469476
H -0.756950 0.000000 -0.469476
END
MP2
Scaling osss
OS 1.2
SS 0.333
FreezeCore false
END
Notes
Scaling ossswithOS 1.2,SS 0.333gives the standard SCS-MP2 correction.- Spin-scaled variants: SCS-MP2 (1.2/0.333), SCS-MP2 (1.3/1.0), and
SCS-MP2 (1.11/0.0) are all accessible via
OS/SSkeywords. - Frozen-core: use
FreezeCore trueto correlate only valence electrons.
CCSD Convergence
The coupled-cluster singles and doubles (CCSD) solver can be tuned with several convergence controls for difficult systems.
CCSD Convergence Control
task: CCSD RHF CC-PVDZ
GEOMETRY
O 0.000000 0.000000 0.117369
H 0.756950 0.000000 -0.469476
H -0.756950 0.000000 -0.469476
END
CC
Conv 8
MaxIter 80
Diis true
DiisStart 3
Shift 0.2
FreezeCore false
END
Notes
- MP2 and CC always compute in-core
TwoElectronIntegralsfor the AO→MO transform, even whenDirect trueis enabled for SCF. - The
task:line for MP2/CCSD(T) includes the reference method and basis set. - Frozen-core: use
FreezeCore trueto correlate only valence electrons. - DF-MP2: set
DF trueandAux <name>for density-fitting. - For CCSD(T), add the triples correction automatically by using
task: CCSD(T) ....
ECP Calculations
ECP Calculation — Iodine Atom (LANL2DZ)
task: RHF STO-3G
GEOMETRY
I 0.0 0.0 0.0
END
BASIS
Library STO-3G
Ecp lanl2dz
END
Notes
- The
Ecpfield in theBASISsection is the supported way to attach an ECP library to a calculation. - Available ECP libraries: LANL2DZ, Stuttgart (SDD), and others.
- ECPs replace core electrons with an effective potential, reducing the number of basis functions for heavy elements.
- The ECP contribution is added to the core Hamiltonian automatically.
Usage
BASIS
Library def2-TZVP
Ecp lanl2dz
END
The basis set Library specifies the valence basis; Ecp specifies the
effective core potential. Both are required for ECP calculations.
Implicit Solvent Examples
Water with C-PCM
task: SCF RHF/STO-3G
MOLECULE
Charge 0
Multiplicity 1
Units Angstrom
END
GEOMETRY
O 0.000000 0.000000 0.117369
H 0.756950 0.000000 -0.469476
H -0.756950 0.000000 -0.469476
END
SOLVATION
Model cpcm
Dielectric 78.3553
Surface swig
Lebedev 110
END
This runs an RHF/STO-3G energy with C‑PCM water. The default surface is SWIG with 110 Lebedev points per atom.
Water with IEF-PCM (tabulated solvent)
task: SCF RHF/6-31G*
MOLECULE
Charge 0
Multiplicity 1
END
GEOMETRY
O 0.000000 0.000000 0.117369
H 0.756950 0.000000 -0.469476
H -0.756950 0.000000 -0.469476
END
SOLVATION
Model iefpcm
Solvent water
END
The SOLVATION section activates the solvent. The dielectric constant
(78.3553) is loaded automatically from the SMD parameter table for water.
Methanol with SS(V)PE and ISWIG surface
task: SCF RHF/6-31G*
MOLECULE
Charge 0
Multiplicity 1
END
GEOMETRY
C 0.049272 0.074722 0.000000
O 0.049272 1.509864 0.000000
H -0.447572 -0.303266 0.891288
H -0.447572 -0.303266 -0.891288
H 1.089478 -0.252237 0.000000
H -0.438081 1.909086 -0.755708
END
SOLVATION
Model ssvpe
Solvent methanol
Surface iswig
Lebedev 194
END
Uses the ISWIG (erf-based) surface for a smoother cavity, with a finer 194-point Lebedev grid.
SMD for Aqueous Solvation
task: SCF B3LYP/6-31+G**
MOLECULE
Charge 0
Multiplicity 1
END
GEOMETRY
O 0.000000 0.000000 0.117369
H 0.756950 0.000000 -0.469476
H -0.756950 0.000000 -0.469476
END
BASIS
Library 6-31+G**
END
SOLVATION
Model smd
Solvent water
Surface swig
Lebedev 110
END
SMD uses IEF-PCM electrostatics with SMD-parametrized radii and adds a density-independent CDS free energy.
Geometry Optimization in Solvent
task: OPT RHF/6-31G*
MOLECULE
Charge 0
Multiplicity 1
END
GEOMETRY
O 0.000000 0.000000 0.117369
H 0.756950 0.000000 -0.469476
H -0.756950 0.000000 -0.469476
END
SOLVATION
Model iefpcm
Solvent water
END
OPT
Algorithm berny
Coord tric
MaxCycle 100
END
Geometry optimizations with solvent recompute the cavity at each step (the cavity is a function of geometry). Analytical gradients include the full PCM contribution.
Frequency Analysis in Solvent
task: FREQ RHF/6-31G*
MOLECULE
Charge 0
Multiplicity 1
END
GEOMETRY
O 0.000000 0.000000 0.117369
H 0.756950 0.000000 -0.469476
H -0.756950 0.000000 -0.469476
END
SOLVATION
Model cpcm
Dielectric 78.3553
Surface swig
Lebedev 110
END
FREQ
Hessian analytical
Temperature 298.15
Pressure 1.0
END
Harmonic frequencies with implicit solvent. The analytical Hessian includes the
PCM curvature (hess_nuc + hess_solver). The electron–cavity integral
curvature (hess_qv) is currently approximated; finite-difference Hessians
(freq=(numerical)) give the full solvent response at higher computational
cost.
ddCOSMO Energy
task: SCF RHF/STO-3G
MOLECULE
Charge 0
Multiplicity 1
END
GEOMETRY
H 0.000000 0.000000 0.000000
H 0.000000 0.000000 1.400000
END
SOLVATION
Model ddcosmo
Dielectric 78.3553
END
ddCOSMO uses a domain-decomposition solver with spherical-harmonic expansion (lmax = 6 by default). The analytical gradient is available but the analytical Hessian is not yet implemented for ddCOSMO/ddPCM.
Output: Solvent Block
When solvent is active, the output header includes a solvent summary:
Solvent Settings
--------------------------------------------------
Model : C-PCM
Solvent : water
Dielectric : 78.3553
Surface : SWIG
Lebedev points : 110
VDW scale : 1.000
Probe radius : 0.000 Å
Known Limitations
| Feature | Status |
|---|---|
| Analytical Hessian with C-PCM / COSMO / IEF-PCM / SS(V)PE | ✓ RHF + UHF (CPHF solvent response included) |
| Analytical Hessian with ddCOSMO / ddPCM | ✗ (use freq=(numerical)) |
| Analytical Hessian with ROHF | ✗ (no ROHF Hessian in SCF crate) |
grad_qv (electron–cavity integral gradient) | ✓ (analytical via integral crate) |
hess_qv (electron–cavity integral Hessian) | ✗ (finite-difference only) |
| SMD CDS analytical gradient | ✗ (numerical CDS gradient) |
| TD-DFT with solvent | ✗ |
Checkpointing
Save and Restart from Checkpoint
task: RHF 6-31G*
GEOMETRY
O 0.000000 0.000000 0.117369
H 0.756950 0.000000 -0.469476
H -0.756950 0.000000 -0.469476
END
SCF
Save true
MaxCycle 100
END
Restart
To restart the SCF from the saved density in a follow-up job, set Restart true:
SCF
Restart true
MaxCycle 100
END
Scratch Directory
By default the checkpoint file is placed next to the input file (myjob.oqd for
myjob.inp). Set OPENQUANTUM_SCRATCH to redirect it to a dedicated scratch
directory (recommended on HPC systems with high-performance parallel filesystems):
export OPENQUANTUM_SCRATCH=/scratch/$USER/$SLURM_JOB_ID
mkdir -p $OPENQUANTUM_SCRATCH
oquantum myjob.inp
The scratch directory is always printed at the start of each run:
Scratch directory: /scratch/user/12345345
CONTROL Checkpoints
Every section also writes a richer binary checkpoint (default extension .oqw)
through the CONTROL section. This file
captures the final geometry, molecular orbitals (coefficients and energies), an
optional Hessian (for frequency runs), SCF convergence info, and basis-set info.
Use CheckpointName to choose the file name and ReadCheckpoint to restart a
later job from it (see Multi-Section Jobs).
CONTROL
WriteCheckpoint True
CheckpointName water_opt.oqw
END
Notes
- The
SCFSave/Restartkeywords manage a lightweight scratch density used to warm-start an SCF within a single run. - The
CONTROLcheckpoint (.oqw) is a self-describing record of the final state, suitable for restarting geometry and orbitals across jobs. Save truewrites the SCF scratch checkpoint after convergence.Restart truereads the initial guess from the scratch checkpoint file.- The scratch directory also holds other temporary files.
Multi-Section (Multi-Job) Calculations
A single input file can define several jobs that run in sequence using JOB N
blocks. A top-level MOLECULE section supplies charge/multiplicity/units
defaults shared by all jobs. Each job has its own task: line and sections.
Later jobs can restart from a prior job's checkpoint using a RESTART section:
Geometry FromJob=N— start from jobN's final geometry.Orbitals FromJob=N— warm-start the SCF from jobN's molecular orbitals.
title: Water - Opt then high-accuracy single point
MOLECULE
Charge 0
Multiplicity 1
Units Angstrom
END
JOB 1
task: RHF STO-3G Optimize
CONTROL
PrintLevel Normal
WriteCheckpoint True
CheckpointName water_opt.oqw
END
OPT
Algorithm Berny
MaxIter 300
Convergence Tight
Frozen
Bond 1 2
Angle 2 1 3
END
END
GEOMETRY
O 0.000000 0.000000 0.117790
H 0.000000 0.755450 -0.471160
H 0.000000 -0.755450 -0.471160
END
END
JOB 2
task: RHF 6-31G* SinglePoint
CONTROL
PrintLevel Normal
ReadCheckpoint True
WriteCheckpoint True
CheckpointName water_sp.oqw
END
Restart
Geometry FromJob=1
Orbitals FromJob=1
END
END
Frozen coordinates
Inside an OPT section, a Frozen block holds the listed internal coordinates
fixed at their starting values during the optimization:
OPT
Frozen
Bond 1 7
Angle 2 1 7
Dihedral 1 2 3 4
END
END
Atom indices are 1-based. The optimizer measures each coordinate at the input geometry and enforces it as a hard constraint.
Notes
- Each job writes its own checkpoint (see CONTROL).
- A job that omits
GEOMETRYmust restart geometry from a prior job's checkpoint. - The checkpoint stores only the latest section's data per file.
Energy Summary
=== Energy Summary ===
Total Energy: -1.116717501234 Hartree
Electronic Energy: -1.830717501234 Hartree
Nuclear Repulsion Energy: 0.714000000000 Hartree
SCF Converged: Yes
Iterations: 10
Final ΔP (RMS): 1.00e-10
Fields
| Field | Description |
|---|---|
| Total Energy | Total HF energy (electronic + nuclear) |
| Electronic Energy | Expectation value of electronic Hamiltonian |
| Nuclear Repulsion Energy | Classical Coulomb repulsion between nuclei |
| SCF Converged | Whether SCF reached convergence criteria |
| Iterations | Number of SCF cycles |
| Final ΔP (RMS) | Root-mean-square density matrix change |
Notes
- All energies in Hartree (1 Hartree = 27.211386245988 eV)
- Nuclear repulsion is computed from geometry and atomic numbers
- For UHF, separate α/β electronic energies are printed
- For correlated methods (MP2, CCSD(T)), correlation energy is shown separately
Orbital Energies
=== Orbital Energies ===
MO Energy (Hartree) Occupancy
------------------------------------
1 -0.5782013560 2 (HOMO)
2 0.6714142857 0 (LUMO)
HOMO-LUMO Gap: 1.249616 Hartree (34.0044 eV)
Fields
| Field | Description |
|---|---|
| MO | Molecular orbital index |
| Energy (Hartree) | Orbital energy in Hartree |
| Occupancy | 2 (doubly occupied), 1 (singly occupied), 0 (virtual) |
Notes
- HOMO = Highest Occupied Molecular Orbital
- LUMO = Lowest Unoccupied Molecular Orbital
- For UHF, separate α and β orbital energy tables are printed
- At QC-SCF convergence, pseudocanonicalization produces canonical-like orbital energies required for post-HF (MP2, CCSD(T))
- For correlated methods, canonical orbital energies from the HF reference are used
UHF Spin Information
Spin Information:
N(alpha): 2
N(beta): 1
<S²>: 0.750000 (ideal: 0.750000)
Fields
| Field | Description |
|---|---|
| N(alpha) | Number of α electrons |
| N(beta) | Number of β electrons |
| ⟨S²⟩ | Expectation value of spin-squared operator |
| ideal | Ideal value for pure spin state: S(S+1) |
Spin Contamination
For a pure spin state, ⟨S²⟩ = S(S+1) where S = (N_α - N_β)/2.
| Multiplicity | S | Ideal ⟨S²⟩ |
|---|---|---|
| Singlet (1) | 0 | 0.0 |
| Doublet (2) | 1/2 | 0.75 |
| Triplet (3) | 1 | 2.0 |
| Quartet (4) | 3/2 | 3.75 |
Significant deviation from the ideal value indicates spin contamination (the determinant is not a pure spin eigenfunction). OpenQuantum reports ⟨S²⟩ for every UHF calculation.
Notes
- RHF/ROHF always have ⟨S²⟩ = ideal value (spin-pure)
- UHF may show spin contamination, especially for stretched bonds or transition metals
- ROHF is spin-pure but has a more complex Fock matrix construction
Mulliken Population Analysis
=== Mulliken Population Analysis ===
Atom Symbol Population Charge
----------------------------------------
1 H 1.000000 0.000000
2 H 1.000000 0.000000
----------------------------------------
Total 2.000000 0.000000
Fields
| Field | Description |
|---|---|
| Atom | Atom index (1-based) |
| Symbol | Element symbol |
| Population | Mulliken electron population on atom |
| Charge | Nuclear charge - population |
Formula
The Mulliken population for atom A is:
where the sum over μ runs over basis functions centered on atom A.
The atomic charge is:
Notes
- Mulliken populations are basis-set dependent and can be unreliable for large/diffuse basis sets
- Total population equals total number of electrons
- Total charge equals molecular charge
- For UHF, separate α and β populations are available
- Mulliken analysis is printed by default for all calculations
Frequency Analysis Output
=== Harmonic Frequencies ===
Mode Frequency (cm⁻¹) Reduced Mass (amu) IR Intensity (km/mol)
---- ---------------- ------------------- --------------------
1 1645.82 1.0823 45.23
2 3825.39 1.0321 2.10
3 3942.56 1.0456 18.67
Zero-Point Energy: 0.05895 Hartree
Thermal Correction (E): 0.06123 Hartree
Thermal Correction (H): 0.06217 Hartree
Thermal Correction (G): 0.04188 Hartree
Entropy: 0.04432 Hartree/K
Fields
| Field | Description |
|---|---|
| Mode | Normal mode index |
| Frequency (cm⁻¹) | Harmonic vibrational frequency |
| Reduced Mass (amu) | Effective mass for the normal mode |
| IR Intensity (km/mol) | Infrared absorption intensity |
Thermochemistry
| Quantity | Description |
|---|---|
| Zero-Point Energy | ½ Σ hνᵢ (all real modes) |
| Thermal Correction (E) | Vibrational + rotational + translational energy correction |
| Thermal Correction (H) | E + RT |
| Thermal Correction (G) | H - TS |
| Entropy | S_trans + S_rot + S_vib |
Frequency Scaling
Use the Scale keyword in the FREQ section to apply a scaling factor
(e.g., Scale 0.9854 for B3LYP/6-31G*).
Imaginary Frequencies
Imaginary frequencies are printed as negative values:
Frequencies (cm⁻¹): -1247.3 1652.1 3825.4
A single imaginary frequency indicates a transition state. Multiple imaginary frequencies indicate a higher-order saddle point.
Symmetry Number
The symmetry number σ is auto-detected from point group:
| Point Group | σ |
|---|---|
| C₁ | 1 |
| Cₙ | n |
| Dₙ | 2n |
| T_d | 12 |
| O_h | 24 |
| C∞ᵥ | 1 |
| D∞ₕ | 2 |
Override with SymmetryNumber N in the FREQ section.
Error Types
OpenQuantum provides comprehensive error handling with contextual information:
Error Types
| Error Type | Description |
|---|---|
ParseError | Input parsing errors with line numbers |
BasisError | Basis set loading/parsing errors |
ScfError | SCF convergence and calculation errors |
LinalgError | Linear algebra errors with condition numbers |
IoError | File I/O errors with file paths |
NumericalError | Numerical issues (NaN, Inf, singularity) |
Error Hierarchy
All errors implement the std::error::Error trait and provide:
- Human-readable description
- Source error chain (when applicable)
- Contextual information (line numbers, file paths, condition numbers)
Example Error Messages
Failed to read file '/path/to/input.xyz': No such file or directory
Invalid syntax at line 3: Unknown element symbol: Xx
SCF failed to converge after 100 iterations (ΔP = 1.23e-05)
Matrix is singular or nearly singular (condition number: 1.23e+15).
The matrix is ill-conditioned during symmetric orthogonalization.
Possible causes: (1) Linear dependence in basis set, (2) Atoms too close together
Common Errors and Solutions
| Error | Likely Cause | Solution |
|---|---|---|
ParseError: Invalid syntax at line N | Typo in input file | Check line N for syntax errors |
BasisError: Basis set not found | Typo in basis name or missing basis | Check basis name spelling; see available basis sets |
ScfError: failed to converge | Difficult convergence | Increase MaxCycle, add Shift, try XQC/YQC |
LinalgError: singular matrix | Linear dependence | Use smaller basis, check for duplicate atoms |
NumericalError: NaN/Inf | Numerical overflow | Check geometry, reduce step size |
Debugging Tips
-
Enable trace output for DIIS/BFGS:
OPENQ_DIIS_TRACE=1 oquantum input.inp OPENQ_BFGS_TRACE=1 oquantum input.inp -
Check geometry for:
- Atoms too close together (< 0.5 Å)
- Linear dependencies in basis
- Incorrect coordinates
-
Try alternative SCF methods:
XQCfor DIIS + QC fallbackYQCfor SD → DIIS → QC chainQC truefor full QC-SCF
Workspace Structure
OpenQuantum is a multi-crate Cargo workspace of 11 crates:
crates/
├── common/ # Core data types (Molecule, BasisSet, ScfResult), error types, linalg
├── basis/ # Basis set loading, normalization, ECP parsing, .obs embedded files
├── integral/ # One- and two-electron integrals (MD, SP fast paths, Rys quadrature), ECP, gradients, Hessians
├── symmetry/ # Point group detection, character tables, irrep assignment
├── dft/ # Kohn–Sham DFT: exchange-correlation functionals, grid integration, dispersion
├── solvent/ # Implicit solvent models: PCM-family, ddCOSMO/ddPCM, SMD
├── iooq/ # Input file parsing (section-based format)
├── scf/ # RHF/UHF/ROHF + RKS/UKS solvers, DIIS, Fock builder, CPHF, analytic gradients/Hessians
├── posthf/ # MP2 and CCSD(T) correlation energies
├── geometry/ # BFGS/RFO/IC optimization, IRC, NEB, harmonic frequencies, thermochemistry
└── driver/ # Binary entry point (oquantum), pipeline dispatch, checkpoint
Dependency Graph (acyclic)
common (root)
├─ basis
│ └─ integral ────────────────────────────────────┐
├─ symmetry ─────────────────────────────────────────┤
├─ dft ──────────────────────────────────────────────┤
├─ solvent (depends on common, dft, integral) ───────┤
├─ iooq ─────────────────────────────────────────────┤
├─ geometry ─────────────────────────────────────────┤
│ ▼
└─ scf ── posthf ── driver ──────────────────────────┘
Crate Descriptions
| Crate | Role | Key Exports |
|---|---|---|
common | Root crate: error types, linalg, shared data types | Molecule, Atom, BasisSet, Shell, Primitive, ScfOptions, ScfResult, OneElectronIntegrals, IntegralProvider, ReactionField, CoordinateUnit, OpenQuantumError |
basis | Basis set loading & storage, normalization, ECP parsing | load_basis_set, ecp::load_ecp_library, cartesian_to_pure_tmatrix |
integral | 1e/2e integrals, ECP & gradient integrals, ERI Hessians | compute_one_electron_integrals, TwoElectronIntegrals, DirectScfIntegrals, shell_quartet_eri, shell_quartet_eri_hessian, ecp::build_ecp_matrix_from_molecule |
symmetry | Point group detection, symmetry operations | detect_symmetry, PointGroup, SymmetryInfo |
dft | Kohn–Sham DFT: functionals, grid, XC integration, dispersion | Functionals, functional, FunctionalSpec, MolecularGrid, GridLevel, integrate_xc, build_xc_matrix, build_unrestricted_xc_matrices, dispersion_energy, DispersionModel |
solvent | Implicit solvation: PCM, ddCOSMO/ddPCM, SMD, gradients, Hessians | PcmSolver, DdSolver, SmdCds, build_surface, pcm_matrices, pcm_gradient, pcm_hessian, ddcosmo_gradient |
scf | RHF/UHF/ROHF/RKS/UKS solvers, DIIS, Fock builder, output, checkpoint, CPHF, analytic gradients/Hessians | rhf_scf, uhf_scf, rohf_scf, rks_scf, uks_scf, rks_scf_range_separated, rks_scf_with_reaction_field, uks_scf_with_reaction_field, DiisAccelerator, checkpoint::{save,load} |
posthf | MP2 and CCSD(T) correlation energy | mp2_correlation_energy, ccsd_energy, ccsdt_energy |
iooq | Input file parsing (section-based format) | Route, Method, RunType, parse_molecule, Route::parse |
geometry | BFGS optimization, Berny RFO, GDIIS/GEDIIS, harmonic frequencies, IRC, NEB | optimize, OptimizationResult, frequencies, frequencies_from_hessian, FreqResult |
driver | Binary entrypoint, pipeline dispatch, checkpoint | prepare_scf, run_pipeline |
Commands
| Action | Command |
|---|---|
| Build all | cargo build --release |
| All tests | cargo test |
| Single crate | cargo test -p <name> |
| Run input | cargo run --release --package oquantum -- <input_file> |
| Documentation | cargo doc --no-deps |
Note:
cargo runrequires--package oquantum(or-p oquantum) because the workspace has multiple crates. The binary's name isoquantum.
Crate Dependency Graph
The diagrams below are derived from the current production Rust module layout in
crates/*/src. They are intended to be updated whenever crate/module boundaries
change. Test-only modules are omitted for readability.
Crate Dependency Graph
flowchart LR
common[common]
basis[basis]
integral[integral]
dft[dft]
solvent[solvent]
symmetry[symmetry]
iooq[iooq]
scf[scf]
posthf[posthf]
geometry[geometry]
driver[driver]
common --> basis
common --> integral
common --> dft
common --> symmetry
common --> iooq
common --> geometry
common --> scf
common --> posthf
basis --> integral
integral --> scf
dft --> solvent
integral --> solvent
dft --> scf
integral --> posthf
symmetry --> scf
solvent --> scf
scf --> driver
posthf --> driver
iooq --> driver
symmetry --> driver
geometry --> driver
dft --> driver
solvent --> driver
basis --> driver
integral --> driver
Dependency Rules
commonis the root crate — all other crates depend on itbasis→integral(integrals need basis set data)integral→scf(SCF needs integrals)dft→scf(SCF builds the Kohn–Sham Fock matrix via XC integration)dft+integral→solvent(solvent needs DFT grid + integral evaluation for cavity)solvent→scf(solvent-coupled SCF usesReactionFieldtrait)symmetry→scf(SCF uses symmetry for orbital labeling)integral→posthf(MP2/CC need integrals)- All crates →
driver(binary links everything) - No cycles in the dependency graph
Module & Submodule Map
This page maps the internal module layout of the workspace crates, following the
modern Rust module convention (foo.rs declares the module, foo/ holds its
submodules).
dft Crate
The dft crate provides Kohn–Sham DFT ingredients. Functional definitions,
grid construction, and XC integration are kept separate so new rungs can be
added without touching the SCF driver.
| Module | Role |
|---|---|
functionals | Exchange-correlation functional implementations by rung (LDA, GGA, meta-GGA, hybrid, range-separated). Forward-mode autodiff (7-variable dual numbers) for exact analytic derivatives |
grid | Molecular quadrature grid: Becke partition, Mura–Knowles radial scheme, Lebedev–Laikov angular grids, Stratmann–Scuseria compact cell function |
integrate | AO evaluation on grid batches, XC energy/potential accumulation, shell-pair screening |
dispersion | Empirical dispersion corrections: D2 (Grimme 2006), D3 zero-damping, D4 charge-scaled |
types | FunctionalSpec, FunctionalValue, Rung, ExactExchangeModel, DensityPoint, GridLevel, DftError |
| Public Symbol | Description |
|---|---|
Functionals | Enum of all supported functionals |
functional() | Returns FunctionalSpec for a given functional name |
MolecularGrid | Atom-centered grid builder and storage |
integrate_xc() | Returns XC energy, grid electron count, and diagnostics |
build_xc_matrix() | Builds the AO XC potential matrix for RKS |
build_unrestricted_xc_matrices() | Builds spin-resolved XC matrices for UKS |
dispersion_energy() | Dispersion correction for a given functional |
solvent Crate
The solvent crate implements implicit continuum solvation models. It couples
into SCF via the ReactionField trait in common::types.
| Module | Role |
|---|---|
surface | Cavity surface construction: SWIG (polynomial switching) and ISWIG (erf-based) discretizations; S and D matrix assembly |
pcm | PcmSolver: PCM-family models (C-PCM, COSMO, IEF-PCM, SS(V)PE); K·q = R·v linear system solve; caching for gradient/Hessian reuse |
ddcosmo | DdSolver: domain-decomposition COSMO/PCM with real spherical-harmonic expansion (l=0..6) on atomic spheres |
ddcosmo_grad | ddcosmo_gradient(): analytic gradient for ddCOSMO/ddPCM via adjoint-Lagrangian formulation |
gradient | pcm_gradient(): three-term analytic PCM gradient (grad_nuc, grad_solver, grad_qv) |
hessian | pcm_hessian(): three-term analytic PCM Hessian (hess_nuc, hess_solver, hess_qv) with CPHF solvent response |
smd | SmdCds: SMD cavity-dispersion-solvent-structure term with geometry-dependent atomic surface tensions |
smd_data | SmdDescriptor: Abraham-style solvent descriptors (ϕ, ψ, β, α, γ, ε, n) for 179 solvents |
solvents | static_dielectric(): dielectric constant lookup for named solvents |
spherical_harmonics | Real spherical harmonic evaluation for ddCOSMO/ddPCM |
| Public Symbol | Description |
|---|---|
PcmSolver | Main PCM reaction-field operator; response() → fock_contribution() |
DdSolver | Domain-decomposition reaction-field solver |
SmdCds | SMD non-electrostatic CDS correction |
build_surface() | SWIG/ISWIG cavity surface construction |
pcm_matrices() | S (Coulomb) and D (dielectric response) matrix assembly |
pcm_gradient() | Full analytic PCM nuclear gradient |
pcm_hessian() | Full analytic PCM nuclear Hessian |
ddcosmo_gradient() | Analytic ddCOSMO/ddPCM gradient |
geometry Crate
The geometry crate hosts every optimization, transition-state, and frequency
backend. Key public symbols are re-exported from geometry::lib.
Commands Reference
Performance Considerations
License
NOT DECIDED YET
Copyright (c) 2026 Le Nhan Pham
Contributing
We welcome contributions to OpenQuantum! This document provides guidelines for contributing to the project.
Getting Started
- Fork the repository on GitHub
- Clone your fork locally
- Create a new branch for your feature or fix
- Make your changes
- Run tests and ensure they pass
- Submit a pull request
Development Setup
git clone https://github.com/lenhanpham/OpenQuantum
cd OpenQuantum
cargo build --release
cargo test
Code Style
- Follow Rust standard style (run
cargo fmt) - Use
cargo clippyto catch common issues - Write documentation for public APIs
- Add tests for new functionality
Pull Request Guidelines
- Keep PRs focused on a single feature or fix
- Include a clear description of the changes
- Reference any related issues
- Ensure all tests pass
- Update documentation if needed
Testing
# Run all tests
cargo test
# Run tests for a specific crate
cargo test -p integral
# Run with specific features
cargo test --features <feature>
Reporting Issues
- Use GitHub Issues for bug reports and feature requests
- Include a minimal reproducible example for bugs
- Specify the OpenQuantum version and platform
Code of Conduct
Be respectful and constructive in all interactions. We follow the Rust Code of Conduct.