vibeqc.compute_gcp¶
- vibeqc.compute_gcp(mol, basis_name=None, *, params=None, with_gradient=False, damping=None)[source]¶
Geometric counterpoise correction (Kruse & Grimme 2012).
- Parameters:
mol (vibeqc._vibeqc_core.Molecule) –
vibeqc.Molecule(atomic positions in bohr; the gCP evaluator works in bohr natively).basis_name (str | None) – Lowercase canonical name of the target basis set (e.g.
"def2-svp","minis","def2-mtzvpp"). Looked up in the bundled parameter registry. Mutually exclusive withparams.params (GCPParams | None) – Explicit
GCPParamsinstance — bypasses the registry lookup. Use this to plug in published per-element data for a basis that’s not yet bundled, or to evaluate gCP with a custom parameter set.with_gradient (bool) – If True, the returned
GCPResultcarries an(n_atoms, 3)array of ∂E_gCP/∂R_A in Hartree/bohr. The gCP energy is a closed-form sum over atom pairs; the gradient is the analytic derivative of the same expression with respect to nuclear positions. Not yet available together withdamping(raisesNotImplementedError).damping (tuple | None) – Optional
(dmp_scal, dmp_exp)tuple enabling the short-range “damped gCP” used by the pbeh-3c / hse-3c / r2scan-3c composites (gcp.f90damp=.true.path; Grimme group default(4.0, 6.0)). Each pair contribution is scaled by1 - 1/(1 + dmp_scal·(R/r0ab)^dmp_exp), which suppresses the bonded-pair gCP so only genuine long-range (intermolecular) BSSE survives.None(default) reproduces the plain Kruse-Grimme gCP — unchanged for every non-damped caller (def2-svp, minix, b3lyp-3c, standalone use). Without damping an isolated molecule’s gCP is grossly over-counted (audit F1.5: r2scan-3c/H2O gives +28.8 undamped vs the correct +1.12 kcal/mol damped).
- Return type:
- Raises:
ValueError – If neither
basis_namenorparamsis given, or if both are.GCPDataMissing – If the basis-set / element combination falls outside the bundled parameter coverage. The message lists the missing elements and points at the contribute-via-PR pathway.