Self-Consistent Field Methods

Hartree–Fock methods

Quiqbox supports basic Hartree–Fock methods with various configurations:

ItemsOptions
HF Typesrestricted closed-shell (RHF), unrestricted open-shell (UHF)
Initial Guessescore Hamiltonian, generalized Wolfsberg-Helmholtz, superposition of atomic densities (SAD), pre-defined coefficient matrix
Converging Methodsdirect diagonalization, direct inversion in the iterative subspace (DIIS), E-DIIS, A-DIIS, combinations of multiple methods
DIIS-type Method SolversLagrange multiplier solver, L-BFGS solver

Basic Hartree–Fock

To run a Hartree–Fock method, the lines of code required in Quiqbox are as simple as below:

julia> nuc = [:H, :H];
julia> nucCoords = [(-0.7, 0.0, 0.0), (0.7, 0.0, 0.0)];
julia> bs = reduce(vcat, genGaussTypeOrbSeq.(nucCoords, nuc, "STO-3G"));
julia> resRHF = runHartreeFock(NuclearCluster(nuc, nucCoords), bs);Hartree–Fock (HF) Initialization: •HF Type: Restricted closed-shell (RHF) •Basis Set Size: 2 •Initial Guess Method: SAD •Initial HF energy E: -1.831000039 Ha •Initial RMS(FDS-SDF): 1.35974e-16 •Convergence Threshold of E: 1.0e-9 Ha •Convergence Threshold Ratios of (FDS-SDF, D) to E: (1000.0, 1000.0) Self-Consistent Field (SCF) Iteration: =================================================================== | Step | E (Ha) | ΔE (Ha) | RMS(FDS-SDF) | RMS(ΔD) |======|==============|==============|==============|============== |–––––<1>–[:DD] | 1 | -1.831000039 | 0.000000000 | 2.18548e-16 | 2.00148e-16 |–––––<2>–[:ADIIS] | 2 | -1.831000039 | 0.000000000 | 1.35974e-16 | 2.00148e-16 |–––––<3>–[:DIIS] | 3 | -1.831000039 | 0.000000000 | 2.18548e-16 | 2.00148e-16 The SCF iteration of RCHartreeFock has converged at step 3: |ΔE| → 0.000000000 Ha, RMS(FDS-SDF) → 2.18548e-16, RMS(ΔD) → 2.00148e-16. Hartree–Fock Energy ¦ Nuclear Repulsion ¦ Total Energy -1.8310000395 Ha 0.7142857143 Ha -1.1167143252 Ha
julia> @show resRHF.energy resRHF.coeff resRHF.occu;resRHF.energy = (-1.8310000394614838, 0.7142857142857143) resRHF.coeff = ([0.5489340404350302 1.2114640729141284; 0.5489340404350305 -1.2114640729141284],) resRHF.occu = (Quiqbox.MemoryPair{Float64, Tuple{Bool, Bool}}([-0.5782029768532935, 0.6702677605933031], Tuple{Bool, Bool}[(1, 1), (0, 0)]),)

Flexible core functions

If the user wants to fine-tune the SCF iteration to achieve better performance, Quiqbox has provided various core types and functions that allow the user to customize the HF methods:

HFconfig

SCFconfig

Stand-alone integral functions

Quiqbox also provides efficient native functions for one-electron and two-electron integral calculations.

One-electron functions

overlap

overlaps

elecKinetic

elecKinetics

nucAttraction

nucAttractions

coreHamiltonian

Two-electron functions

elecRepulsion

elecRepulsions