vibeqc.loewdin_charges

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

Löwdin (symmetric-orthogonalization) atomic partial charges.

The spin-summed AO density is transformed to the global symmetric- orthogonalized basis before its diagonal is partitioned by atom:

q_A = Z_A - sum_{mu in A} (S^{1/2} P S^{1/2})_mu,mu

A block-diagonal, per-atom basis transformation cannot define this population: the per-atom trace of the correspondingly transformed P S product is invariant and therefore reduces exactly to Mulliken charges.

nuclear_charges as in mulliken_charges() (ECP: Z - n_core, #642).

Parameters:
  • basis (vibeqc._vibeqc_core.BasisSet)

  • molecule (vibeqc._vibeqc_core.Molecule)

  • nuclear_charges (Sequence[float] | None)

Return type:

ndarray