vibeqc.compute_gradient_periodic_rhf_gamma

vibeqc.compute_gradient_periodic_rhf_gamma(system, basis, result, *, lattice_opts=None, alpha_hf=1.0)[source]

Analytic Γ-only periodic RHF atomic gradient.

Parameters:
  • system (vibeqc._vibeqc_core.PeriodicSystem) – Periodic system and AO basis.

  • basis (vibeqc._vibeqc_core.BasisSet) – Periodic system and AO basis.

  • result (vibeqc._vibeqc_core.PeriodicRHFResult) – Converged PeriodicRHFResult from vibeqc.run_rhf_periodic() (must have converged=True).

  • lattice_opts (vibeqc._vibeqc_core.LatticeSumOptions | None) – LatticeSumOptions controlling the lattice-sum cutoffs. If None, defaults from LatticeSumOptions(). For the gradient to match the SCF energy gradient, these cutoffs must match the values used during the SCF (i.e. the same opts.lattice_opts you passed to run_rhf_periodic).

  • alpha_hf (float)

Returns:

(n_atoms, 3) gradient in Ha/bohr.

Return type:

np.ndarray

Notes

Current scope (G1a-1): 1-electron Pulay + nuclear-repulsion + overlap-Lagrangian terms via the new lattice-summed C++ primitives. The 2-electron Pulay term falls back to the molecular code path on the Γ-folded total density. This is exact in the molecular limit (single cell, AO overlap between cells negligible) and approximate for truly periodic systems where cross-cell ERIs contribute. G1a-2 will replace the 2-e fallback with the full lattice-summed periodic ERI gradient.