vibeqc.get_hf_orbital_provider

vibeqc.get_hf_orbital_provider(molecule, basis, *, method='rhf', _with_result=False, scf_options=None, canonical_frame=True, degeneracy_tol=1e-08)[source]

Run vibe-qc’s RHF and return the MO coefficient matrix.

This is a convenience function – the solver layer does not require HF orbitals. Any source of orthonormal orbitals works.

Parameters:
  • molecule (Molecule)

  • basis (BasisSet)

  • method (str) – "rhf" (default), "uhf", "uno" or "rohf".

  • canonical_frame (bool) – True (default) passes the orbitals through canonicalize_degenerate_orbitals(), keyed on the orbital energies ("uno": the natural occupations), so that the frame inside every degenerate cluster is a function of the deck rather than of the host’s eigensolver (#322). False returns the SCF’s own eigenvectors: a frame-dependent result computed on them (a seniority-zero energy, a truncated selected-CI rung) is then reproducible only on the host that produced it.

  • degeneracy_tol (float) – Cluster tolerance handed to the canonicaliser (1e-8 Ha, or 1e-8 in occupation for "uno").

  • scf_options (RHFOptions | UHFOptions, optional) – The caller’s SCF options, used as the base instead of a fresh object. Callers that accept rhf_options= / uhf_options= must thread them here: an ECP supplied only through those options (rather than through a basis sidecar) reaches the reference this way and nowhere else, and a dropped one is silent – the run completes on a bare-Z Hamiltonian (#740). Convergence controls below are applied on top unless the caller set them.

  • _with_result (bool)

Returns:

mo_coeffs – Columns are canonical HF molecular orbitals, in the canonical frame unless canonical_frame=False.

Return type:

(n_ao, n_ao) ndarray