vibeqc.dipole_moment

vibeqc.dipole_moment(result, basis, molecule, *, origin=None, nuclear_charges=None)[source]

Electric dipole moment of a converged SCF calculation.

origin (bohr) defaults to the molecular center of mass, which makes the dipole origin-independent for neutral systems (the convention every standard QC code uses). For charged systems the dipole depends on origin; pass an explicit vector if you need a particular reference.

nuclear_charges – per-atom charges for the nuclear term sum_A Z_A (R_A - O); None is bare Z. On an ECP calculation the density integrates to the valence count only, so pass the effective charges Z - n_core (vibeqc.ecp_metadata.effective_nuclear_charges() on the SCF options that ran; Dolg & Cao 2011, Sec. 5, Eqs. 54-55). With bare Z a neutral ECP molecule’s dipole is origin-dependent by exactly -n_core au per bohr of origin shift (GitLab #642).

Parameters:
  • basis (vibeqc._vibeqc_core.BasisSet)

  • molecule (vibeqc._vibeqc_core.Molecule)

  • origin (Sequence[float] | None)

  • nuclear_charges (Sequence[float] | None)

Return type:

DipoleMoment